【发布时间】:2017-08-08 20:04:58
【问题描述】:
我在使用 Nginx 的远程服务器上部署了一个 Angular 4 应用程序,可以通过以下地址访问:http://xx.xx.xx.xx/app。该应用程序运行良好,我可以在我的网站中导航,但是当我刷新一个页面时,例如http://xx.xx.xx.xx/app/page1,它会显示 nginx 的 index.html 页面。
Nginx 的页面位于/usr/share/nginx/html,我的应用的页面位于/var/www/app。
nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf; */
location /app {
root /var/www;
try_files $uri $uri/ /index.html;
}
}
刷新期间似乎没有考虑root /var/www 行。
我听说过有关 try_files 的错误,看来我需要在某处添加重写。感谢您的帮助。
【问题讨论】:
-
尝试这样的事情: location ~ ^/app/(.*)$ 而不是 /app 。这确保它不仅在 /app 上匹配任何子页面
-
您是否尝试将其更改为
root /var/www/app;或try_files $uri $uri/ /app/index.html;? -
@eesdil 感谢您的建议,但它不会改变任何东西。
-
@PierreDuc 您的第二个建议不起作用。但第一个更有趣。刷新现在效果很好,但是当我访问我的网站时,我会直接重定向到我的应用程序,我不希望这样。所以我试着只写
root /var/www;,但行为又像以前一样...... -
您应该更改为
location /app/(额外的斜线)。我想你可以无视我的第一条评论