[英]django how to include javascript in template
我正在开始一个项目并按照文档我没有成功地包含 javascript。
这是我的设置:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = '/static/'
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
所以我在我的项目中创建了一个带有 javascript 文件的静态文件夹。
我的项目/静态/ app.js
我的 urls.py:
urlpatterns = [
url(r'^$', 'app.views.home'),
url(r'^admin/', include(admin.site.urls)),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
在我的模板中:这是 myproject/templates/base.html:
<!DOCTYPE html>
<head>
{% load static %}
<script src="{% static 'app.js' %}"></script>
<title>Site</title>
</head>
<body>
<img src="{% static 'img.png' %}" alt="Mon image" />
{% block content %}{% endblock %}
</body>
</html>
我的另一个模板:
{% block content %}
hello world
{% endblock %}
我打开了“你好世界”
但我没有我的图像或脚本。
我尝试了很多不同的事情,但我从未成功
网址.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
]
设置.py
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_URL = '/static/'
# remove STATIC_ROOT
基本文件
您的标题标签未关闭。
<!DOCTYPE html>
<head>
{% load static %}
<script src="{% static 'app.js' %}"></script>
<title>Site</title>
</head>
<body>
<img src="{% static 'img.png' %}" alt="Mon image" />
{% block content %}{% endblock %}
</body>
</html>
你的模板应该说{% load staticfiles %}
而不是{% load static %}
来源: https : //docs.djangoproject.com/en/1.8/howto/static-files/
此外, os.path.join(BASE_DIR, "static"),
仅在您的应用程序中查找静态文件,如app/static/app/static.js
。 如果您的静态文件不属于任何特定应用程序,而是属于项目,则需要明确添加文件夹。 请参阅我提到的文档页面上“配置静态文件”的第 4 点。
根据我的理解, STATICFILES_DIRS
应该在settings.py
并定义如下:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
请检查文档。
我是编程新手,因此请稍加保留我的观点。 我去。 也许你有更多的应用程序意味着你必须检查你的树,因为它应该按照 django 文档的要点进行。 这意味着你应该有 your_app/static/your_app/ 在这里你必须再放三个对应于 css、images 和 js 的文件夹以及它们各自的文件。
另请注意,您的静态 url 应命名为与静态根不同的名称。 完成此操作后,您必须告诉 django 在哪里可以找到每个应用程序的静态数据,因此您必须在 STATICFILES_DIRS 中声明它。
完成所有这些之后,您必须运行 collectstatic 命令。
我仍然缺少将每个应用程序的 js 文件连接到模板的部分。
Create directory named 'static' at base directory. i.e. at similar level to project directory.
Then add following in settings.py
STATIC_URL = '/static/'
#setting for static files
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) code here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.