我正在使用django-compress,远期将来我的css和js文件到期.效果很好.
我想为其他静态内容(图像,闪光等)做类似的事情.我可以设置这个内容的远期未来,但我必须在文件更改时手动重命名.
有没有更好的方法来处理这个?
最好的方法是使用版本化的URL引用静态文件,并为Web服务器提供重写规则以忽略该版本.
在这里查看完整的Django示例,其中包括一个expire_tag帮助程序(由Arne Brodowski创建):
<link rel="stylesheet" type="text/css"
href="{{ MEDIA_URL }}{% expire_tag "css/reset.css" %}" />
Run Code Online (Sandbox Code Playgroud)
以及相关的Apache重写规则.
使用django-compress,您可以将 CSS 和 JS 视为动态文件 - 这很好。然而,其他文件是静态的——Django 并不真正想提供这些文件。它们应该直接由 Apache 或其他网络服务器提供服务。
对于 Apache,你可以输入类似的内容
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
.htaccess或全局 Apache 配置中。
更新:回复您的评论 - 抱歉,我不明白您问题的细微差别。您无法避免使用不同的 URL 向客户端指示文件(例如图像)已更改。这是 Apache 和 YAHOO! 等推荐的。
在我看来,实现这一点并不难。它分为两部分:
/media/3/header.png实际文件保留/media/header.png在服务器上的位置。mod_rewrite,即将 的请求/media/3/header.png转换为/media/header.png. 本文更详细地描述了该功能。| 归档时间: |
|
| 查看次数: |
1796 次 |
| 最近记录: |