【发布时间】:2012-08-02 10:03:33
【问题描述】:
我有一个 Django 应用程序,它需要几个 JavaScript 文件。
在 Chrome 中,我收到错误“资源解释为脚本,但使用 MIME 类型文本/html 传输”。
AFAIK(参见2)为了解决这个问题,我需要配置 Django,以便 JavaScript 文件返回内容类型为“application/x-javascript”。
我如何在 Django 中做到这一点?
更新:我遵循 Daniel Roseman 的建议并找到了以下解决方案。
1) 修改urls.py:
urlpatterns = patterns('',
...
url(r'.*\.js$', java_script),
...
)
2) 在views.py中添加如下函数:
def java_script(request):
filename = request.path.strip("/")
data = open(filename, "rb").read()
return HttpResponse(data, mimetype="application/x-javascript")
【问题讨论】:
-
我能很快找到最好的骗子,但实际上……您正在 Python 中设置标题和内容类型。 Django 与此 AFAIK 无关
-
stackoverflow.com/questions/3467404/… 有人说“这意味着服务器正在发送一个带有 content-type:text/plain 的 Javascript HTTP 响应。”。我正在使用 Django 的内置 Web 服务器(python manage.py runserver),因此我假设我必须配置 Django 的内置服务器来解决这个问题。
-
我对 Python 或 Django 了解不多,无法评论该技术,但最后,您需要找到一种方法,当请求时,这些 uri 会给出正确的标头类型。如果 Django 有或需要,好吧,如果没有,是什么在提供这些文件?就是这个问题。
-
在同一页面上,有人写道“AddType text/javascript .js”将解决 Apache 服务器上的问题(所有具有 .js 扩展名的文件都将具有“text/javascript”内容类型)。对于 Django 的内置 Web 服务器,我需要类似的东西。
标签: javascript django mime-types