我的网站具有以下目录结构:
.
├── assets
├── config
├── html
├── spec
└── vendor
我正在使用它作为运行集成测试的开发设置,我需要一个服务器实例。我需要站点根目录在html中,但我需要能够链接到资产中的资产。到目前为止,这就是我所拥有的,而且它不起作用:
server {
listen 9001;
server_name localhost;
root /Users/hugo/src/feedback/www;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /Users/hugo/src/feedback/www;
index index.html index.htm;
}
location /assets/ {
root /Users/hugo/src/feedback/assets;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# ... all the comments in the default config
}
页面正在提供,但找不到任何资产。它在这里看:
http://localhost:9001/assets/bootstrap/dist/css/bootstrap.min.css
更新
您对目录结构的假设是正确的。 我将配置更改为以下结果:
server {
listen 9001;
server_name localhost;
root /Users/hugo/src/feedback/www/html;
index index.html index.htm;
location / {
}
location /assets/ {
# I also tried using 'root' instead of 'alias' but same results
alias /Users/hugo/src/feedback/www/assets;
}
}
答案 0 :(得分:0)
我看到您已设置root /Users/hugo/src/feedback/www
,这对我来说意味着目录结构如下所示:
www
├── assets
├── config
├── html
├── spec
└── vendor
如果这是正确的,那么您可能需要将资产位置块修改为此(添加www
):
location /assets/ {
root /Users/hugo/src/feedback/www/assets;
}
答案 1 :(得分:0)
假设您确实拥有Blake Frederick认为的www设置,那么您可以查看以下内容:
server {
listen 9001;
server_name localhost;
root /Users/hugo/src/feedback/www/html;
index index.html index.htm;
location / {
# The root and index directives should typically
# not be in locations blocks
# Minimum really is the server block.
# Usually even better in http block.
}
location /assets/ {
# What you need here is the alias directive
alias /Users/hugo/src/feedback/www/assets/;
}
}
答案 2 :(得分:0)
在玩了一下之后,我尝试了一下它就有效了。
server {
listen 9001;
server_name localhost;
root /Users/hugo/src/feedback/www/html;
index index.html index.htm;
location /assets/ {
root /Users/hugo/src/feedback/www;
}
}
我非常喜欢Dayo的回答,因为在阅读文档之后,在我看来,别名更适合我正在做的事情,但不幸的是它没有用。