【问题标题】:Set cache expire headers for static files without access to nginx configuration (Django + Gunicorn)为静态文件设置缓存过期标头,无需访问 nginx 配置(Django + Gunicorn)
【发布时间】:2017-12-19 06:14:51
【问题描述】:

我在共享主机上使用 Gunicorn+Nginx 启动并运行了我的 Django 应用程序,但我无法访问我的 nginx 配置文件(由于共享主机,我在主机控制面板上创建了一个“应用程序”被自动添加为具有特定端口的虚拟主机,我使用该端口启动我的 Gunicorn)。

有没有办法为 css 和 jpg 等静态文件设置缓存过期标头? Nginx 显然没有 .htaccess 之类的东西可以让这更容易。

也许有一种方法可以让 Django 或 Gunicorn 将一些配置(位置等)“推送”到 Nginx?

【问题讨论】:

    标签: python django caching nginx gunicorn


    【解决方案1】:

    您可以控制在应用响应中返回的 HTTP 标头,而无需访问位于 Django 前面的 Web 服务器。 Django's documentation 提供了许多场景以及如何操作的说明。希望这足以让您入门。

    我实际上建议不要在您的网络服务器配置中更改它,因为这意味着您的缓存配置是您的应用程序代码的一部分,并且您的应用程序的行为不是由“外部”配置决定的。

    【讨论】:

    • 嘿!感谢您回复我,问题是我需要为我的静态(css、js、jpg 基本上)文件设置标题。抱歉,我没有将其包含在问题本身中!我已经在使用每个视图缓存。 :)
    • @Elliot 您目前如何提供静态文件?您是否绕过 Django / WSGI 并直接从 Web 服务器为它们提供服务?如果是这样,您可以使用 Whitenoise (github.com/evansd/whitenoise) 之类的包通过 Django 为它们提供服务 - 这将让您控制响应标头。
    • 是的,它们被用作“自定义应用程序”,它是我项目文件夹中静态文件夹的符号链接。
    猜你喜欢
    • 1970-01-01
    • 2012-08-14
    • 2010-10-26
    • 2013-05-22
    • 2018-08-31
    • 2023-04-04
    • 2011-01-10
    • 1970-01-01
    • 2015-11-30
    相关资源
    最近更新 更多