Стационарный файл флагов Cache-Control - программирование
Подтвердить что ты не робот

Стационарный файл флагов Cache-Control

Я пытаюсь установить разумный срок действия кеша для моих файлов JS во время разработки. У меня стандартная настройка, где HTML, CSS и JS живут в каталоге static.

docs упоминать об этом, но для жизни меня я не могу заставить это работать. Я пробовал использовать оба метода, сначала

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

Оба не имели никакого эффекта, мои JS файлы в /static все еще возвращаются с таймаутом кэша по умолчанию,

Cache-Control: public, max-age=43200

Любые указатели оценили.

4b9b3361

Ответ 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.

Ответ 2

Вы можете посмотреть webassets для управления истечением срока действия кеша. Он работает как в разработке, так и в производственной среде.