django 如何在模板中包含 javascript
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 文件的静态文件夹。
myproject/static/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 %}
我在
上有 "hello world"
但我没有我的图片或脚本。
我尝试了很多不同的东西,但我从来没有成功过
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>
您的模板应显示 {% 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
中一样。如果您有不属于任何特定应用程序但属于项目的静态文件,则需要明确添加该文件夹。请参阅我提到的文档页面上 'Configuring static files' 的第 4 点。
我是编程新手,因此请对我的观点持保留意见。我去了。也许你有更多的应用程序意味着你必须检查你的树,因为它应该像 django 文档指出的那样。
意思是你应该有 your_app/static/your_app/in 这里你必须再放三个对应 css 的文件夹,images 和 js 都有各自的文件。
另请注意,静态 url 的名称应不同于静态根。
完成此操作后,您必须告诉 django 在哪里可以找到每个应用程序的静态信息,因此您必须在 STATICFILES_DIRS.
中声明它
完成所有这些之后,您需要 运行 collectstatic 命令。
我仍然缺少将每个应用程序的 js 文件连接到模板的部分。所以我无法进一步帮助你,伙计......希望它能有点帮助
根据我的理解,STATICFILES_DIRS
应该在 settings.py
中并且定义如下:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
请检查documentation。
在基本目录中创建名为 'static' 的目录。即与项目目录处于相似级别。
然后在 settings.py
中添加以下内容
STATIC_URL = '/static/'
#setting for static files
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) code here
我正在开始一个项目并遵循我没有成功包含的文档 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/static/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 %}
我在
上有 "hello world"但我没有我的图片或脚本。
我尝试了很多不同的东西,但我从来没有成功过
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>
您的模板应显示 {% 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
中一样。如果您有不属于任何特定应用程序但属于项目的静态文件,则需要明确添加该文件夹。请参阅我提到的文档页面上 'Configuring static files' 的第 4 点。
我是编程新手,因此请对我的观点持保留意见。我去了。也许你有更多的应用程序意味着你必须检查你的树,因为它应该像 django 文档指出的那样。 意思是你应该有 your_app/static/your_app/in 这里你必须再放三个对应 css 的文件夹,images 和 js 都有各自的文件。
另请注意,静态 url 的名称应不同于静态根。 完成此操作后,您必须告诉 django 在哪里可以找到每个应用程序的静态信息,因此您必须在 STATICFILES_DIRS.
中声明它完成所有这些之后,您需要 运行 collectstatic 命令。
我仍然缺少将每个应用程序的 js 文件连接到模板的部分。所以我无法进一步帮助你,伙计......希望它能有点帮助
根据我的理解,STATICFILES_DIRS
应该在 settings.py
中并且定义如下:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
请检查documentation。
在基本目录中创建名为 'static' 的目录。即与项目目录处于相似级别。 然后在 settings.py
中添加以下内容STATIC_URL = '/static/'
#setting for static files
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) code here