无法使用Apache在图像上设置过期标头

时间:2016-11-06 04:37:22

标签: django apache nginx header

我试图通过在我的Django应用程序的根目录中设置.htaccess文件来告诉浏览器从我的应用程序缓存任何类型的图像文件(png / jpg / gif / etc)。

的.htaccess

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType image/gif "access plus 365 days"
  ExpiresByType image/jpeg "access plus 365 days"
  ExpiresByType image/png "access plus 365 days"
</IfModule>

Apache

LoadModule authz_core_module modules/mod_authz_core.so
LoadModule dir_module        modules/mod_dir.so
LoadModule env_module        modules/mod_env.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module       modules/mod_mime.so
LoadModule rewrite_module    modules/mod_rewrite.so
LoadModule setenvif_module   modules/mod_setenvif.so
LoadModule wsgi_module       modules/mod_wsgi.so
LoadModule unixd_module      modules/mod_unixd.so
LoadModule expires_module    modules/mod_expires.so
LoadModule headers_module    modules/mod_headers.so

<Directory />s
    AllowOverride All
</Directory>

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /home/timbaney1989/logs/user/access_baneydev.log combined
ErrorLog /home/timbaney1989/logs/user/error_baneydev.log

在添加AllowOverride All选项之前,我收到内部服务器错误,但现在我的应用运行正常。然而,当我检查网络并看到正在加载的图像时,我看不到该图像上任何位置的过期标题。服务器还说它是Nginx?在Apache服务器上运行应用程序是否正常,并且有一个Nginx服务器加载静态文件?我的Django应用程序或Apache httpd.conf文件中是否存在我丢失或输入错误的位置?

enter image description here

2 个答案:

答案 0 :(得分:1)

看起来twitter.png文件得到404:

HTTP/1.1 404 Not Found
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html
Date: Sun, 06 Nov 2016 06:44:39 GMT
Server: nginx
Vary: Accept-Encoding

以下是Nicholas Kuechler的solution的修改版本

location ~* \.(png|jpe?g|gif|ico|tiff)$ {
  expires max;
  log_not_found off;
  access_log off;
}

如果它获得404,您可能会错误地为位置块继承设置 root 指令。确认根(DocumentRoot)是正确的,并且该文件相对于根路径存在,并且应该显示。

答案 1 :(得分:0)

您也可以按照uWSGI和NGINX的指南来替换apache,并将静态文件设置为位置块中的别名,并添加我之前答案中的标题。

http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html