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

时间:2020-03-21 16:36:36

标签: python django browser-cache

在生产环境中,服务器加载时,我用节点脚本将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)

0 个答案:

没有答案