最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

为什么我的node.js应用程序重新加载刷新时会出现'Cannot GETpage'错误?

运维笔记admin18浏览0评论

为什么我的node.js应用程序重新加载/刷新时会出现'Cannot GET / page'错误?

为什么我的node.js应用程序重新加载/刷新时会出现'Cannot GET / page'错误?

我有一个Nodejs应用程序托管在共享托管服务中。 applicationpublic_html文件夹中提供Angular应用程序。我的应用程序正常运行,但是当子路由重新加载时,我收到以下错误。

无法获取/子路线

但是这仅发生在sub-routes >>。

我将节点服务器应用设置为:

//import modules
var express = require('express'),
    bodyParser = require('body-parser'),
    morgan = require('morgan'),
    cors = require('cors');
    path = require('path');

var app = express();
var port = process.env.PORT || 3000;

//import database connection from dbconnect.js file
var mysql = require('./dbconnect/dbconnect');

//Parse as urlencoded and json.
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

//adding middleware - cors
app.use(cors());

//Http logger
app.use(morgan('dev'));

//Uncomment for production
app.use(express.static(__dirname + '/public'));
app.get('/*', (req,res) => res.sendFile(path.join(__dirname+'/public')));

app.use(function (req,res,next){
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "x-access-token, Origin, Content-Type, Accept");
    next();
});    

//import routes
var user = require('./routes/Users');  
    route = require('./routes/route');
    router = require('./router/router');
//adding routes
app.use('/api', user, route, router);

app.listen(port, function() {console.log('Server started at http://localhost:'+port+'/');});

我的.htaccess文件配置为

DirectoryIndex disabled
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:3000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L]

我尝试更改此行

app.get('/*', (req,res) => res.sendFile(path.join(__dirname+'/public')));

to

app.get('/*', (req,res) => res.sendFile(path.join(__dirname+'/public/index.html')));

它消除了错误,但是当我这样做时,我的api路由不起作用。

我在共享托管服务中托管了一个Nodejs应用程序。该应用程序正在public_html文件夹中提供Angular应用程序。我的应用程序可以正常运行,但是在重新加载子路由时出现错误...

回答如下:

嘿,这对我很有效。通过将API路由移到catch所有其他路由之上并返回我的代码中缺少的索引。

发布评论

评论列表(0)

  1. 暂无评论