我有一个拥有Express实例的服务器,并在其上构建了一个Parse Server。我将该服务器既用作API,又用作静态文件服务器(至少现在是这样;将来,我可能会将其拆分为两个Node实例)。该服务器尚未启用HTTPS,但是它确实具有指向它的域。
此服务器正在VPS(虚拟专用服务器)中运行,并通过Nginx接入Internet。 Nginx配置文件的工作方式如下(出于安全原因,我用域名代替):
server {
listen 80; server_name mydomain.com; location / {
proxy_pass http://localhost:5555; <--- this is where the node instance is working
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
以及提供静态文件的Node代码:
app.get('/', function(req, res) {
res.status(200).sendFile(path.join(__dirname, '/public/app/index.html'));
});
这里的想法是,当用户访问我的域且URL中未添加任何多余部分时,服务器应检索public/app
文件夹中的文件。
为了完成这项工作,我不得不将<base href="/" />
文件的默认www/index.html
更改为<base href="/public/app/" />
。如果我访问该域,则可以正常工作并正确提供Web应用程序文件。
问题在于,如果我尝试访问Angular中定义的特定路由,则会失败。例如,如果我访问www.mydomain.com之类的域,主页,我就可以与应用程序中的所有功能和路线进行完美交互。但是,如果我选择访问应用程序的特定路由(即www.mydomain.com/user-stats),它将无法正常工作,而是给我这样的错误:
Cannot GET /public/app/user-stats
如您所见,服务器显示URL不必要的/public/app
部分,该部分不应出现。我想我对静态文件服务或Nginx配置甚至是Angular路由本身有一些误解,但希望您能在这里为我提供帮助!
非常感谢。
答案 0 :(得分:0)
只需将@media screen and (max-width: 599px) {
p:nth-of-type(2) {
display: none;
}
}
替换为app.get('/', function...)
并将其放在文件末尾。所有先前定义的不匹配的路由都将退回到该路由