我们在正确显示使用Nginx服务的Angular路线的页面时遇到问题。在我们的Angular项目中,我们的基本href是“ / dashboard”。该项目有两条不同的路线指向“ / dashboard / data-analysis”和“ / dashboard / data-visual”。
这是我的基本nginx.conf文件:
server{
listen 80;
server_name localhost;
location /dashboard/ {
alias C:/Users/C123/Desktop/html/dashboard;
index index.html;
try_files $url $url/ /dashboard/index.html;
}
}
[当我进入“ localhost / dashboard /”或“ localhost / dashboard / data-analysis”时,任一页面都会从“ C:/ Users / C123 / Desktop / html / dashboard /”加载index.html,但随后无法加载index.html的<script>
标记中定义的“ polyfill.js”,“ runtime.js”,“ style.js”等。
此外,Nginx尝试从“ C:/Users/C123/nginx/nginx-1.16.1/html/”而不是我的别名(C:/ Users / C123 / Desktop / html / dashboard)加载这些文件。
是否有一种方法可以在“ dashboard /”位置块中定义,它将从别名的index.html中读取所有内容?我既不想定义根目录,也不想只为“ .js”文件定义辅助位置块。
您缺少root
指令。
[root
也应尝试加载所述文件或目录中的try_files
。
未经测试,但应该可以工作:
index.html
编辑:
如果您尝试访问server {
listen 80;
server_name localhost;
location /dashboard/ {
root C:/Users/C123/Desktop/html;
try_files $uri $uri/index.html =404;
}
}
目录中的文件而未在请求中指定单词dashboard
,则可以为此添加一个代码块以回退到该代码。
dashboard
请记住,当NGINX选择位置上下文时,将从提到的前缀位置中取最长匹配项>>。