【发布时间】:2020-08-15 23:29:47
【问题描述】:
我想使用 jQuery 创建一个 img 元素。由于我使用 Django,我将不得不通过静态变量引用图像文件。我尝试了不同的解决方案来解决这个问题,但服务器无法加载图像,因为浏览器获取了错误的 url。
我最初加载了静态文件,所有其他静态文件都加载得很好。
这是我的代码,位于相关的 .js 文件中:
// foo.js included in foo.html which extends base.html
// Create Image element
var arrowImage = $('<img />', {
id: 'arrowImage',
src: '{% static \"images/arrow.svg\" %}',
});
//
src: '{% static "images/arrow.svg" %}',
//
src: "{% static 'images/arrow.svg' %}",
//
src: "{% static \"'images/arrow.svg'\" %}",
错误:
GET http://127.0.0.1:8000/%7B%%20static%20%22images/arrow.svg%22%20%%7D 404 (Not Found)
我有一个 base.html,它由 foo.html 扩展,该元素应在其中创建。包含上述代码的 .js 文件作为静态文件包含在 foo.html 文件中。
使用这个解决方案,我得到了实际创建的正确 DOM:
// Create Image element
var arrowImage = $('<img />', {
id: 'arrowImage',
src: "{% static \'images/arrow.svg\' %}",
});
有什么解决办法吗?
【问题讨论】:
-
在调用文件之前是否在文件中加载了静态文件?
-
是的,我确实有很多其他文件可以正常加载。
标签: javascript html jquery django