Django: Могут ли сгенерированные сервером файлы кэшироваться браузером? - PullRequest
0 голосов
/ 21 марта 2020

В производственном процессе мои файлы CSS и JS минимизируются скриптом узла, когда сервер загружается, а затем минимизированные "файлы" (строки) хранятся в памяти и доступны по URL-адресу, например /min/front.css.

Проблема, которую я обнаружил, заключается в том, что Chrome не кэширует эти файлы, возможно потому, что распознает, что они на самом деле не являются файлами. Я установил тип содержимого / тип mime, но они все еще не кэшируются. Есть ли способ сделать их кэшируемыми?

Это мои url.py и views.py, которые обслуживают минимизированные файлы:

urls.py

urlpatterns = [
    ...
    path('min/<file>', views.min),
]

views.py

command = 'node .node/min.js'
output = subprocess.run(command, stdout=subprocess.PIPE, shell=True)
minified = eval(output.stdout.decode('utf-8'))

def min(request, file):
    global minified
    split = file.split('.')
    ext = split.pop()
    mime = {
        'css': 'text/css',
        'js': 'application/javascript',
        'html': 'text/html',
    }[ext]
    return HttpResponse(minified[file], mime)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...