有一个通过 jekyll 生成的博客放在路径 A, 并且生成的 html 都以 A 作为根目录"/"引用.
我将 A 在 nginx 的网站主目录中软链接名为 blog.
问题来了, 当我打开 "127.0.0.1/blog" 的时候, 博客的 index.html 可以加载, 但是其中引用的路径名为 "/XXX.css" 的资源全部 404 了.
我清楚问题是处在 "/XXX.css" 是以 A 为根目录的路径而非 nginx 的工作目录.
怎样通过 rewrite 或 try_files 解决?
1
wql 2015-10-25 17:12:18 +08:00 via Android
设置一个回到根目录的符号连接,假设为 css
try_files $uri /css$uri =404 |
2
guofeng1208 OP @wql 嗯, 这个方法我考虑过. 只是假如 blog 下面有个 XX.html, 以后另一个非 blog 子目录也有同名页面 XX.html, 那么子目录多了以后感觉这种方法不太合适, 因为优先顺序可能不好确定.
所以我想, 浏览 127.0.0.1/blog 的时候, 根据网址中 "/blog" 路径判断应该读取 A 目录下资源, 不清楚这个应该怎么实现? |
3
wql 2015-10-25 17:28:15 +08:00 via Android
@guofeng1208
太麻烦了,其实不如直接把 css 放在 blog 的下级子目录里,按照 127.0.0.1/blog/css/XXX.css 来引用。毕竟 jekyll ,可以改模版。 |
4
LazyZhu 2015-10-25 17:36:43 +08:00
不只 rewrite, alias 也可以解决啊
location ~ ^/(.+\.css)$ { alias /path/to/blog/$1; } |