В производственном процессе мои файлы 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)