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

o0lyfsai  于 2023-08-08  发布在  Go
关注(0)|答案(8)|浏览(148)

我有一个Django应用程序,它需要几个JavaScript文件。
在Chrome中,我得到错误“资源解释为脚本,但传输MIME类型text/html”。
x1c 0d1x的数据
AFAIK(参见2)为了解决这个问题,我需要配置Django,以便JavaScript文件返回内容类型为“application/x-javascript”。
如何在Django中做到这一点?

**更新:**我听从了丹尼尔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")

pb3s4cty

pb3s4cty1#

我在Django服务器上遇到了一个问题,Django将JavaScript文件作为text/plain提供给服务器,这在ES6模块上不太好用。我发现here,你可以通过在www.example.com中放置以下行来更改文件扩展名关联settings.py:

#settings.py
if DEBUG:
    import mimetypes
    mimetypes.add_type("application/javascript", ".js", True)

字符串
JavaScript文件现在被用作application/javascript

3z6pesqy

3z6pesqy2#

我怀疑问题不是你想的那样。实际上可能发生的情况是,您的JS文件根本没有得到服务:相反,Django错误页面被发送。你得找出原因。

yvgpqqbh

yvgpqqbh3#

扩展Alexandre的答案,使用将下面的代码放到你settings.py的主项目的www.example.com中。之后,您需要清除浏览器缓存(您也可以通过打开一个匿名窗口来测试它),以便显示调试面板。

if DEBUG:
    import mimetypes
    mimetypes.add_type("application/javascript", ".js", True)

字符串

kkbh8khc

kkbh8khc4#

既然这不会阻止浏览器正确解释脚本,为什么这是一个问题?runserver仅用于开发(非生产使用),因此不是一个完整的Web服务器。
您应该继续在开发中使用它,并在迁移到生产环境时为静态文件适当地配置Web服务器。
但是,如果您 * 绝对必须 * 使用开发服务器来提供静态文件;查看如何提供静态文件。

9udxz4iz

9udxz4iz5#

对于Django,在视图中使用请求上下文:

return render_to_response('success.html', {'object': varobject},context_instance=RequestContext(request))

字符串

p5cysglq

p5cysglq6#

即使在将@piephai的解决方案添加到我的settings.py之后,我今天也遇到了这个错误。然后我注意到@丹尼尔Roseman也说对了:我的导入路径是错误的,我不得不添加“.js”到所有的路径中,例如:
import {HttpTool} from "./requests";变为import {HttpTool} from "./requests.js";
在考虑如何生成静态文件的路由后,这是有意义的。

nfs0ujit

nfs0ujit7#

文档中描述了问题的解决方案

  • 对于Windows,您需要编辑注册表。将HKEY_CLASSES_ROOT\.js\Content Type设置为text/javascript
mwg9r5ms

mwg9r5ms8#

下面的代码已经为我工作。我想mime类型在最近的django版本中已经被弃用了?

response = HttpResponse("alert('hello')")
content_type="application/x-javascript") return response

字符串

相关问题