我的项目有以下结构。
server.js
/node_modules
/build
vendor.js
main.js
index.html
我正在使用express和AngularJS的ui-router
。
在server.js
我有这段代码:
app.get('/*', function(req, res) {
res.sendFile(__dirname + '/build/index.html');
});
如果我通过localhost:8080/hellothere
本地它正在工作,我得到正确的页面,但是当我部署时,它没有。
在应用程序中,如果使用链接导航路线,则会将URL修改为/hellothere
,但如果我更新页面或尝试直接转到绝对URL,我会得到:
Cannot GET /hellothere
我已经尝试过了:
app.get('/page1', function(req, res) {
res.sendFile(__dirname + '/build/index.html');
});
app.get('/page2', function(req, res) {
res.sendFile(__dirname + '/build/index.html');
});
...
行为与'/*'
相同。很好的本地,打破了云。
知道这里发生了什么吗?
答案 0 :(得分:0)
如果我通过
localhost:8080/hellothere
,则在本地运行,我得到 正确的页面,但部署后却没有。
可能的原因可能是在部署基本URL后可能是domainname.com/appname
,而本地代码是针对localhost:portNumber
而不是localhost:portNumber/appname
因此修改您的路径
app.get('/appname/hellothere', function(req, res) {
res.send("hellothere is working");
});
代替
app.get('/hellothere', function(req, res) {
res.send("hellothere is working");
});
要在本地运行它,现在您需要localhost:portNumber/appname/hellothere