在生产环境中,服务器加载时,我用节点脚本将CSS和JS文件缩小,然后将缩小的“文件”(字符串)保存在内存中,并通过诸如/min/front.css
的URL进行访问。
我发现的问题是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)