我有一个位于
的html文件/static/templates/usersPostsSection.html
在我的app目录中。 usersPostsSection.html的前几行是:
{% load static %}
<link rel='stylesheet' type='text/css' href="{% static 'css/cssReset.css' %}" />
<link rel='stylesheet' type='text/css' href="{% static 'css/homePageBase.css' %}" />
<script type='text/javascript' src="{% static 'js/jquery.js' %}"></script>
<form class='voteForm' method="post" action="/post/likePost/">{% csrf_token %}
<button class="voteButton" type="submit">
</button>
<input type="hidden" name="postID" value="{{ post.id}}" />
</form>
<script type='text/javascript'>
$('.voteForm').click( function() {
event.preventDefault();
$.post('/post/likePost/', $('.voteForm').serialize(), function(data) {
$('#content').hide();
$('#content').load('/static/templates/usersPostsSection.html');
});
});
</script>
当转到URL / home /时,我看到usersPostSection.html非常好。但是,一旦我单击表单按钮并运行JS,它就会一直运行到函数的最后一行:
$('#content').load('/static/templates/usersPostsSection.html');
重新加载usersPostsSection.html后,页面上没有显示任何内容,当我使用&#39;检查元素时#39;在Chrome上,它会出错:
GET http://127.0.0.1:8000/home/%7B%%20static%20'js/jquery.js'%20%%7D?_=1403660483401 404 (NOT FOUND)
Uncaught SyntaxError: Unexpected token < jquery.js:2
GET http://127.0.0.1:8000/home/%7B%%20static%20'css/cssReset.css'%20%%7D 404 (NOT FOUND) jquery.js:3
GET http://127.0.0.1:8000/home/%7B%%20static%20'css/homePageBase.css'%20%%7D 404 (NOT FOUND) jquery.js:3
我很确定它会出现此错误,因为它正在检查
中的静态文件http://127.0.0.1:8000/home/
而不是使用我在settings.py中设置的静态位置:
STATICFILES_DIRS = (
'/home/user/Documents/djcode/aS/aSa/static'
)
任何想法如何在调用.load函数后停止获取这些404错误?
答案 0 :(得分:1)
你的问题是静态文件不能解释静态html文件中的django模板标签,因此你需要将/static/templates/usersPostsSection.html
写成普通的html。
%7B%%20static%20'js/jquery.js'%20%%7D
只是{% static 'js/jquery.js' %}
的网址转义值。
或者,您可以通过django视图提供该文件(您是否已在/home/
执行此操作?)并从那里加载,而不是作为静态文件。