技术解析

nginx rewrite 或 try_files 问题
0
2021-05-25 12:14:31
idczone

有一个通过 jekyll 生成的博客放在路径 A, 并且生成的 html 都以 A 作为根目录"/"引用.
我将 A 在 nginx 的网站主目录中软链接名为 blog.

问题来了, 当我打开 "127.0.0.1/blog" 的时候, 博客的 index.html 可以加载, 但是其中引用的路径名为 "/X大带宽服务器XX.css" 的资源全部 404 了.

我清楚问题是处在 "/XXX.css" 是以 A 为根目录的路径而非 nginx 的工作目录.

怎样通过 rewrite 或 try_files 解决?


设置一个回到根目录的符号连接,假设为 css
try_files $uri /css$uri =404

嗯, 这个方法我考虑过. 只是假如 blog 下面有个 XX.html, 以后另一个非 blog 子目录也有同名页面 XX.html, 那么子目录多了以后感觉这种方法不太合适, 因为优先顺序可能不好确定.
所以我想, 浏览 127.0.0.1/blog 的时候, 根据网址中 "/blog" 路径判断应该读取 A 目录下资源, 不清楚这个应该怎么实现?

@guofeng1208
太麻烦了,其实不如直接把 css 放在 blog 的下级子目录里,按照 127.0.0.1/blog/css/XXX.css 来引用。毕竟 jekyll ,可以改模版。

不只 rewrite, alias 也可以解决啊
location ~ ^/(.+\.css)$ {
alias /path/to/blog/$1;
}

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服