我如何设置nginx来解决在静态文件vue上找不到的404?

问题描述 投票:1回答:1

我使用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)

我该如何解决这个问题?

vue.js nginx vue-component vuetify.js static-files
1个回答
0
投票

在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有一个已知的错误

© www.soinside.com 2019 - 2024. All rights reserved.