如何在 Django 中设置 JavaScript 文件的内容类型

DP_*_*DP_ 6 javascript django mime-types

我有一个 Django 应用程序,它需要几个 JavaScript 文件。

在 Chrome 中,我收到错误“资源解释为脚本,但使用 MIME 类型 text/html 传输”。

在此处输入图片说明

AFAIK(参见2)为了解决这个问题,我需要配置 Django,以便 JavaScript 文件以内容类型“application/x-javascript”返回。

我怎样才能在 Django 中做到这一点?

更新:我遵循了 Daniel Roseman 的建议并找到了以下解决方案。

1)修改urls.py:

urlpatterns = patterns('',
    ...
    url(r'.*\.js$', java_script),
    ...
)
Run Code Online (Sandbox Code Playgroud)

2)在views.py中添加以下函数:

def java_script(request):
    filename = request.path.strip("/")
    data = open(filename, "rb").read()
    return HttpResponse(data, mimetype="application/x-javascript")
Run Code Online (Sandbox Code Playgroud)

Ale*_*Cox 12

我遇到了一个问题,Django 将 javascript 文件作为文本/纯文本与包含的服务器一起提供,这在 ES6 模块中运行得不太好。我在这里发现您可以通过在 settings.py 中放置以下几行来更改文件扩展名关联:

#settings.py
if DEBUG:
    import mimetypes
    mimetypes.add_type("application/javascript", ".js", True)
Run Code Online (Sandbox Code Playgroud)

和 javascript 文件现在作为application/javascript.


Dan*_*man 8

我怀疑问题不是你认为的那样。可能实际发生的情况是根本没有提供您的 JS 文件:相反,正在发送 Django 错误页面。你需要弄清楚原因。