项目目录中的 Settings.py 文件:
我已经添加了以下内容:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
->在模板中
<script src="{% static "validateurl/home.js" %}"></script>
我在项目目录下有一个目录static。 home.js 位于 static 下的 validateurl 目录下。
在模板 html 文件中使用以下内容引用 JS 文件:
请告知我在这里缺少什么。
错误如下:
最佳答案
以下是配置您的 Django 应用程序以提供静态文件以进行本地开发的步骤。
STATIC_ROOT 默认为无,因此您必须在设置中指定。确保你的 settings.py 中有这样的东西,这会告诉你的网络服务器在哪里找到和提供映射到 url 的静态文件。
import os
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
其次还要指定您的 STATIC_URL 变量,因为它也默认为无。以下就足够了。这将用于设置 urlpattern。
STATIC_URL = '/static/'
您需要有一个 url 模式,以便您的服务器知道什么 url 对应于静态文件
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
在设置中指定 STATICFILES_DIRS 变量。这样收集静态管理器就知道在哪里可以找到静态并将它们放在 STATIC_ROOT 中。这可以是不同目录项的数组或元组。如果您没有其他目录,这可以为空
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'pathtohomejsdirectory/'),)
最后,确保运行 python manage.py collectstatic
这会将 STATICFILES_DIRS 中指定的所有文件复制到/static/(STATIC_ROOT) 目录以供 django 服务。
在生产中,您希望网络服务器/反向代理使用 nginx 或 apache 来提供文件。请参阅此处 django 文档 here
关于django - Django 服务静态文件时出现 404 错误。如何设置 Django 来提供静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52560619/