您好,匿名用户
随意问技术百科期待您的加入

nginx 二级目录附加斜杠的影响

0 投票

我的网页程序在 app1 目录下, 当用 http://server.com/app1/ 访问时,一切正常,但是用 http://server.com/app1 访问时,页面里的超链接会漏掉这个二级目录,例如

<link type="text/css" rel="stylesheet" href="static/style.css" />

指向的是 http://server.com/static/sytle.css 而不是 http://server.com/app1/static/sytle.c... 导致资源获取失败。

我知道可以通过添加规则来跳转

rewrite ^([^.]*[^/])$ $1/ permanent;

但是这样就使url上多出了一个斜杠,有没有其他办法?

以下是我的nginx配置:

set $dir /home/user/apps;
        location ~ static/(.*)$ {
            alias $dir/$uri;
        }
        location ~ ^/([^/]+) {
            set $app $1;
            include uwsgi_params;
            uwsgi_pass unix:///tmp/uwsgi_vhosts.sock;
            uwsgi_param UWSGI_CHDIR $dir/$app/;
            uwsgi_param UWSGI_PYHOME $dir/$app/;
            uwsgi_param PATH_INFO /;
            uwsgi_param UWSGI_SCRIPT index;
            uwsgi_param SERVER_NAME $server_name.$app;
        }
用户头像 提问 2012年 12月1日 @ Poppy 上等兵 (395 威望)
分享到:

1个回答

0 投票

正如评论里 DaiJie 所说的,出现这个问题的非常正常,web server 和浏览器默认行为是正确的。
建议题主使用绝对路径或者含域名的完整地址来引用静态资源。

用户头像 回复 2012年 12月1日 @ Nautilus 上等兵 (223 威望)
提一个问题:

相关问题

0 投票
1 回复 5 阅读
用户头像 提问 2014年 5月14日 @ Mordekaiser 上等兵 (232 威望)
0 投票
1 回复 40 阅读
0 投票
0 回复 20 阅读
用户头像 提问 2012年 12月1日 @ Apple 上等兵 (542 威望)
+1 投票
1 回复 33 阅读
用户头像 提问 2012年 12月1日 @ Brand 上等兵 (185 威望)
0 投票
1 回复 33 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...