![](/img/trans.png)
[英]How do I load static JavaScript files inside django framework
[英]How do I link to Django static assets from my JavaScript files?
我正在尝试加载特定文件,但是由于Django管理相对路径的方式而失败。 这是我的应用程序的结构:
mysite
|-- manage.py
|-- mysite
|-- __init__.py
|-- settings.py
|-- urls.py
|-- wsgi.py
|-- app
|-- __init__.py
|-- models.py
|-- tests.py
|-- views.py
|-- static
|-- JS
|-- myScript.js
|-- data
|-- myData.geojson
|-- templates
|-- app
|-- index.html
换句话说,很标准。 这两个关键部分是我将myScript.js加载到index.html中,如下所示:
<script type='text/javascript' src="{% static '/JS/myScript.js' %}"></script>
问题是,我要在myScript.js中加载myData.geojson。 这不起作用:
...
'url': '/static/data/myData.geojson'
...
也没有
'url': '{% static /data/myData.geojson %}' #this throws an error
我只想要一个项目设置,在这里我可以使用相对路径来做到这一点:
'url': '../data/myData.geojson'
那可能吗? 我当前的设置是这样的:
STATIC_URL = '/static/'
STATIC_ROOT = '/var/www/mysite/static'
Django在渲染时将static
模板标记URL转换为其相应的绝对URI。 您不能在JavaScript文件中使用Django模板标签。 有两种方法可以解决此问题。
<span id="absoluteURIResource" style="display: hidden;">{% static "path/to/your/resource" %}</span>
然后在您的JavaScript中,您可以通过以下方式访问此文件:
var path = document.getElementByID("absoluteURIResource").innerHTML;
第二个问题更像是骇客,找出绝对URI会更容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.