【发布时间】:2017-07-18 11:45:56
【问题描述】:
我使用 WordPress 作为主页 (mysite.com),其余部分使用 Django (mysite.com/pages)。我对它们都有一个 nginx 配置文件,并且工作正常。此外,它们位于单个 server 块中。
这是我的配置的一些部分:
server {
...
root /var/www/wordpress;
...
location /static/ {
alias /home/username/Env/virtenv/mysite/static/;
}
}
这样,WordPress 和 Django 静态文件都可以使用。 现在我想在浏览器中缓存所有静态文件 7 天。如果我加上这个:
location ~* \.(jpg|jpeg|png|svg|gif|ico|css|js)$ {
expires 7d;
}
然后 WordPress 静态文件被正确缓存,但 Django 的静态文件甚至没有服务。
我知道这是因为永远无法到达 /static/ 位置,然后 Nginx 在 root 指令中搜索 Django 的文件,该指令位于 server 块级别并指向 WordPress 位置。
我可以删除缓存位置并在/static/location 中添加expires 7d;。这将只缓存 Django 的静态文件。
但是我怎样才能让两个静态资源都缓存一周呢?
【问题讨论】:
-
我将
expires 7d;放入/static/,结果还是一样。 Nginx 不提供/static/中的资源,因为如果在location ~* \.(jpg|jpeg|png中搜索它们。 -
您能分享一下您可以提出什么样的替代解决方案吗?