【问题标题】:Django Nginx Browser Caching ConfigurationDjango Nginx 浏览器缓存配置
【发布时间】:2015-02-15 00:04:51
【问题描述】:

我正在尝试配置 Nginx 以利用浏览器上的静态文件缓存。 我的配置文件如下

server {

    listen   80;
    server_name localhost;

    client_max_body_size 4G;

    access_log /home/user/webapps/app_env/logs/nginx-access.log;
    error_log /home/user/webapps/app_env/logs/nginx-error.log;

    location /static/ {
        alias   /home/user/webapps/app_env/static/;
    }

    location /media/ {
        alias   /home/user/webapps/app_env/media/;
    }
...
}

当我添加以下缓存配置时,服务器无法加载静态文件,我无法重新启动我的 Nginx。

location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 365d;
}

nginx-error 日志显示open() "/usr/share/nginx/html/media/cover_photos/292f109e-17ef-4d23-b0b5-bddc80708d19_t‌​humbnail.jpeg" failed (2: No such file or directory)

我在网上做了很多研究,但无法解决这个问题。

谁能帮助我或者给我一些关于在 Nginx 中实现静态文件缓存的建议? 谢谢!

参考:Leverage browser caching for Nginx

【问题讨论】:

    标签: django caching nginx browser-cache django-staticfiles


    【解决方案1】:

    再次,我必须回答我自己的问题。 根本问题在于“路径”。

    我从@Dayo 找到答案,我在这里引用:

    您缺少图像位置块的根指令。 因此,nginx 将在默认位置查找文件 因安装而异,因为您很可能没有放置 那里的文件,你会得到一个 404 Not Found 错误。

    Answer from Dayo

    因此,我在我的配置文件中添加了根路径如下:

    root /home/user/webapps/app_env/;
    

    整个配置如下所示:

    server {
    
        listen   80;
        server_name localhost;
    
        root /home/user/webapps/app_env/;
    
        client_max_body_size 4G;
    
        access_log /home/user/webapps/app_env/logs/nginx-access.log;
        error_log /home/user/webapps/app_env/logs/nginx-error.log;
    
        location /static/ {
           alias   /home/user/webapps/app_env/static/;
        }
    
        location /media/ {
           alias   /home/user/webapps/app_env/media/;
        }
    
        location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
           expires 365d;
        }
    
    ...
    }
    

    一切都很好。

    希望有同样问题的人可以借鉴一下。

    【讨论】:

    • 感谢分享,但在生产中对我不起作用。它在我的本地生产环境中工作,但在真正的生产环境中,它不起作用。我表示文件扩展名已被缓存,但 nginx 实际上无法加载文件以设置我的页面样式。
    猜你喜欢
    • 2015-07-13
    • 2014-11-29
    • 2016-09-16
    • 2015-02-14
    • 2018-03-27
    • 1970-01-01
    • 2023-03-06
    • 2019-07-12
    • 2015-04-18
    相关资源
    最近更新 更多