首页 > 解决方案 > 为什么浏览器不加载静态文件?

问题描述

设置.py

STATIC_URL = '/static/'
STATICFILES_DIR = [
os.path.join(BASE_DIR, 'static_in_env')
]

STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media_root')
MEDIA_URL = '/media/'

django.contrib.staticfiles' 包含在 installed_apps 中。{% load static from staticfiles %} 在 base.html 中使用。仍然收到这些错误:

[22/Dec/2019 13:45:31] "GET / HTTP/1.1" 200 10735
[22/Dec/2019 13:45:32] "GET /static/js/jquery-3.4.1.min.js HTTP/1.1" 404 
1791
[22/Dec/2019 13:45:43] "GET /static/css/bootstrap.min.css HTTP/1.1" 404 
1788
[22/Dec/2019 13:45:43] "GET /static/css/mdb.min.css HTTP/1.1" 404 1770
......

脚本.html

{% load static from staticfiles %}

<script type="text/javascript" src="{% static 'js/jquery-3.4.1.min.js' 
%}"> 
</script>
<!-- Bootstrap tooltips -->
<script type="text/javascript" src="{% static 'js/popper.min.js' %}"> 
</script>
<!-- Bootstrap core JavaScript -->
<script type="text/javascript" src="{% static 'js/bootstrap.min.js' %}"> 
</script>
<!-- MDB core JavaScript -->
<script type="text/javascript" src="{% static 'js/mdb.min.js' %}"> 
</script>
<!-- Initializations -->
<script type="text/javascript">
// Animations initialization
new WOW().init();

</script>

staticfiles 目录包括以下文件和文件夹

static_in_env

 - css
   -bootstrap.css
   -bootstrap.min.css
   -mdb.css
   -mdb.min.css
   -mdb.lite.css
   -mdb.lite.min.css
   -style.css
   -style.min.css
 - font
 - img
 - js
    -bootstrap.js
    -bootstrap.min.js
    -mdb.js
    -mdb.min.js
    -popper.min.js
 - scss

标签: djangodjango-2.2

解决方案


在您的project_name/urls.py中,尝试在末尾添加以下内容:

urlpatterns = [
    # your urls...
]

# ↓ add this ↓
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

另外,只需放入{% load static %}您的script.html,而不是{% load static from staticfiles %}


推荐阅读