我正在制作一个 JavaScript Web 应用程序,在开发过程中,它将驻留在目录“js”中。它将被连接到一个文件中,并放在“static”文件夹中以供分发,但在开发过程中,我希望目录“/js”指向不在“static”文件夹中的 JavaScript 源。
这是我的 nginx 配置文件,据我了解,它应该可以工作:
# Dev server.
server {
listen 1337;
charset UTF-8;
location /js {
root /home/tomas/projects/streamcore/js;
}
location / {
root /home/tomas/projects/streamcore/static;
index index.html;
}
}
我可以访问“index.html”,但对“/js”下文件的任何请求都会导致 404 NOT FOUND。根据文档,请求应该与具有最具体模式的位置块匹配,在本例中为“/js”,所以我不明白为什么这不起作用。
如果需要,请索取更多信息。感谢您的帮助。
答案1
有几件事!
- 根据Nginx 缺陷页面,在位置块内使用 root 可能会有效,但可能会产生意想不到的副作用。他们建议改用“别名”。
- 同一页面还建议不要在位置内使用索引块 - 相反,只需使用一次它就会被继承到下面的块。
我会根据您的示例将您的文件更改为如下内容:
server {
listen 1337;
charset UTF-8;
root /home/tomas/projects/streamcore/static;
index index.html;
location /js {
alias /home/tomas/projects/streamcore/js;
}
}