我正在开始一个项目并按照文档说明我没有成功包含javascript。
以下是我的设置:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = '/static/'
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
所以我在项目中使用javascript文件创建了一个静态文件夹。
myproject的/静态/ app.js
my 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 %}
我有&#34;你好世界&#34;在
但我没有我的形象或剧本。
我尝试了很多不同的东西,但我从未成功
答案 0 :(得分:16)
<强> urls.py 强>
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
]
<强> settings.py 强>
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_URL = '/static/'
# remove STATIC_ROOT
<强> 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>
答案 1 :(得分:1)
根据我的理解,STATICFILES_DIRS
应该位于settings.py
中,并按以下方式进行定义:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
请检查documentation。
答案 2 :(得分:0)
您的模板应该说{% 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
中所示。如果您的静态文件不属于任何特定应用程序,而是属于项目,则需要显式添加该文件夹。请参阅&#39;配置静态文件&#39;的第4点。在我提到的文档页面上。
答案 3 :(得分:0)
我是程序设计的新手,因此请捏一点盐。我去也许您有更多的应用程序,这意味着您必须按照Django文档的指示检查树,因为它应该走。 这意味着您应该在此处添加your_app / static / your_app /,并且必须再添加三个分别与css,image和js对应的文件夹以及各自的文件。
还请注意,您的静态网址应命名为与静态根目录不同。 完成此操作后,您必须告诉django在哪里可以找到每个应用程序的静态信息,因此必须在STATICFILES_DIRS中声明它。
所有这些之后,您必须运行collectstatic命令。
我仍然缺少将每个应用程序的js文件连接到模板的部分。.所以我无法进一步帮助您花花公子..希望对您有所帮助