Django:浏览器可以缓存服务器生成的文件吗?

问题描述 投票:0回答:1

在生产中,当服务器加载时,我的CSS和JS文件通过节点脚本来缩小,然后将缩小的“文件”(字符串)保存在内存中并通过诸如/min/front.css之类的URL进行访问。

我发现的问题是Chrome不会缓存这些文件,可能是因为它识别出它们实际上不是文件。我已经设置了内容类型/ mime类型,但是它们仍然没有被缓存。有什么方法可以使它们可缓存吗?

这是我的url.pyviews.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)
python django browser-cache
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.