我使用nginx运行我的项目。所以我将nginx安装到本地主机以对其进行测试
我在本地主机上的配置nginx就像这样:
location / {
root html;
index index.html index.htm;
}
如果刷新页面,则存在如下错误:
404 Not Found
nginx/1.14.0 (Ubuntu)
我在Google上进行搜索,并获得了一些参考。我这样尝试:
location / {
root /www/dist;
try_files $uri /index.html;
}
我工作。没有错误
然后我将项目部署到生产中
我在生产中的配置nginx像这样:
location / {
root /www/dist;
try_files $uri /index.html;
}
也可行
但是我的问题是我需要将位置更改为这样:
location /startup {
root /www/dist;
try_files $uri /index.html;
}
我在Nginx中有很多项目。因此,我必须添加/startup
以表明它是启动项目。但这会导致这样的错误:
404 Not Found
nginx/1.14.0 (Ubuntu)
我该如何解决这个问题?
在nginx中使用root
时,它总是appends到文件路径末尾的路由,但这在使用/
时并不明显。因此,在您第一个使用location /
的示例中,它在服务器上搜索以下路径:
root + /www/dist + /
但是当您使用location /startup
时,它将查找不存在的该路径:
root + /www/dist + /startup
因此要使用/startup
,您可以将文件放在dist
的子目录中,称为startup
,也可以使用alias
:
location /startup/ {
alias <insert root path>/www/dist/; // Make sure you use a trailing slash here
}
[alias
+ try_files
有一个已知的错误