22

我正在尝试在开发过程中为我的 JS 文件设置合理的缓存过期时间。我有标准设置,其中 HTML、CSS 和 JS 位于static目录下。

文档确实提到了这一点,但对于我来说,我无法让它发挥作用。我已经尝试了两种隐含的方法,首先

class MyFlask(flask.Flask):
    def get_send_file_max_age(self, name):
        if name.lower().endswith('.js'):
            return 60
        return flask.Flask.get_send_file_max_age(self, name)

app = MyFlask(__name__)

app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 60

两者都没有效果,我 /static 下的 JS 文件仍然返回默认缓存超时,

Cache-Control: public, max-age=43200

任何指针表示赞赏。

4

2 回答 2

1

您可能需要查看网络资产来管理缓存到期。它适用于开发和生产环境。

于 2013-04-17T07:51:26.700 回答
1

我遇到了这个问题,在网上找不到适合我的答案。

然后我意识到我的静态文件根本不是从 Flask 提供的!Flask 只生成我的 HTML。静态文件由我的网络服务器直接提供(在我的例子中是 Apache,你的可能是 Nginx 或其他)。

以下是 Apache 的说明。

首先安装 mod_expires 模块:

sudo a2enmod expires

然后将这样的内容添加到您的.htaccess文件中:

ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType image/* "access plus 1 year"

有关如何在Apache 手册中配置它的更多详细信息。

于 2016-01-24T23:51:40.653 回答