【发布时间】:2017-09-17 08:11:41
【问题描述】:
我有一个目录/文件结构,例如:
root/
a/
utils.js
b/
assets/
styles.css
app.js
index.html
并且我想将 nginx 配置为直接从 a 目录提供文件(如果存在),并且在目录 b 中有单页应用程序(如果路径中的文件存在,它将直接提供,如果不存在,则回退将结束在index.htm 文件上。
例如:
-
myapp.com/a/utils.js将返回该文件。 -
myapp.com/b/或myapp.com/b/foo将显示index.html -
myapp.com/b/assets/style.css会直接返回css文件
我尝试了多种不同的配置,但到目前为止都没有。例如最简单的:
server {
listen 80;
root /root;
index index.html;
location / {
try_files $uri $uri/ /index.html =404;
}
}
我也尝试为不同的目录提供服务:
server {
listen 80;
root /root;
index index.html;
location /a {
try_files $uri $uri/ =404;
}
location /b {
try_files $uri $uri/ /index.html =404;
}
}
我也尝试定义不同的根:
server {
listen 80;
index index.html;
location /a {
root /root/a;
try_files $uri $uri/ =404;
}
location /b {
root /root/b;
try_files $uri $uri/ /index.html =404;
}
}
Nginx 似乎忽略了现有文件并最终返回 404 页面。当我尝试直接访问 soe 现有文件时,无论如何它都会被重定向到 / (root) url。
【问题讨论】:
标签: nginx