Javascript 如何让Django模板HTML文件加载CSS/JS而不将Django代码放入HTML文件中?

Javascript 如何让Django模板HTML文件加载CSS/JS而不将Django代码放入HTML文件中?,javascript,python,html,django,Javascript,Python,Html,Django,我的templates文件夹中有一个index.html。在HTML文件中,head标记为 当我在templates/中打开一个终端并运行python manage.py runserver时,HTML加载很好。但是我得到一个404错误,如下所示:get/PATH/TO/scripts/main.js HTTP/1.1 404 2446 index.html找不到我的JS文件。如果不编辑index.html,如何使html文件加载JS文件?您应该使用static和{%loadstaticfrom

我的templates文件夹中有一个index.html。在HTML文件中,head标记为

当我在templates/中打开一个终端并运行python manage.py runserver时,HTML加载很好。但是我得到一个404错误,如下所示:get/PATH/TO/scripts/main.js HTTP/1.1 404 2446

index.html找不到我的JS文件。如果不编辑index.html,如何使html文件加载JS文件?

您应该使用static和{%loadstaticfromstaticfiles%}

像这样:

{% load static from staticfiles %}
<script src="{% static 'scripts/main.js' %}"></script>
您必须在settings.py中设置STATIC_URL和STATIC_ROOT,然后才能将它们添加到URL.py

注意:这适用于settings.py中的DEBUG=False

您必须运行runserver-unsecure才能让django服务于静态文件

因此,您可以添加以下内容:

<script src="/static/scripts/main.js"></script>
/静态/可替换为您的静态URL


是的,在index.html中。将{%load static from staticfiles%}放在HTML的第一行,并放入标记中。如何在不编辑“index.HTML”的情况下完成所需的操作?是否不使用Django模板引擎?然后您应该设置DEBUG=False并将STATIC_ROOT设置为静态目录,并将django url设置为手动提供静态文件。或者您可以设置NginX或Apache2,以便在接近静态URL时为静态文件提供服务。我确实建议您在Django模板中使用静态方法。如何设置Django URL以手动为静态文件提供服务?如何设置NginX或Apache2以您描述的方式提供静态文件?为什么我需要使用静态方法?
<script src="/static/scripts/main.js"></script>