为什么我的node.js应用程序重新加载/刷新时会出现'Cannot GET / page'错误?
我有一个Nodejs应用程序托管在共享托管服务中。 application在public_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所有其他路由之上并返回我的代码中缺少的索引。