在我的script.js中:
pic.src = "/static/photos/1.jpg"; // This works
pic2.src = "{% static 'photos/1.jpg' %}" // Does not work
Run Code Online (Sandbox Code Playgroud)
为什么世界会发生这种情况?因为在我的home.html中,{%static'路径'%}有效:
{% load staticfiles %}
<script src="{% static 'script.js' %}"></script> // This works
Run Code Online (Sandbox Code Playgroud)
是{%load staticfiles%}还是{%load static%}?这两个都适用于我,script.js已加载.
aus*_*acy 30
由于您使用的是django的模板语言,因此您只能在<script>标签之间的模板中执行此操作.换句话说,如果你想pic2.src在外部脚本中使用你的javascript变量,那么你需要在<script>标签之间声明它,就像这样
<script>
var pic2.src = "{% static "photos/1.jpg" %}"
</script>
Run Code Online (Sandbox Code Playgroud)
然后你可以在你可能加载的外部脚本中访问它:
<script type="text/javascript" src="{% static "js/my_external_script.js" %}"></script>
Run Code Online (Sandbox Code Playgroud)
关于你的问题,load static并load staticfiles没有什么区别.两者都充当了STATIC_URL你settings.py和文件本身的实际路径的木匠,所以两者都适用于你的情况.有关详细信息,请参阅此处和此处.
如果您的文件中需要许多静态(或媒体)URL .js,这可能更方便:
<script>
var static_url = "{% get_static_prefix %}";
var media_url = "{% get_media_prefix %}";
</script>
Run Code Online (Sandbox Code Playgroud)
然后两个url都可以在所有javascript文件中免费使用.
您可以在模板中指定路径,然后在javascript文件中使用它.
模板:
<script>
var url = "{% static 'photos/1.jpg' %}";
</script>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
pic2.src = url
Run Code Online (Sandbox Code Playgroud)
小智 5
简单的解决方法!:)
索引.html
<input type="hidden" id="pic-src" value="{% static 'photos/1.jpg' %}">
Run Code Online (Sandbox Code Playgroud)
脚本.js
var pic2.src = $('pic-src').val();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32194 次 |
| 最近记录: |