静态文件找不到错误在django

qeeaahzv  于 2022-12-20  发布在  Go
关注(0)|答案(3)|浏览(142)

我知道这个问题在这里已经被问了好几次了。我已经搜索和阅读了一些答案,但没有帮助。我想,我错过了一些非常基本的东西。
In my settings.py, I have:

STATIC_URL = '/static/'
STATIC_ROOT = join(APPS_DIR, "static/")
# STATICFILES_DIRS = [join(APPS_DIR, 'static')]

MEDIA_ROOT = join(APPS_DIR, 'media')
MEDIA_URL = "/media/"

In my config/urls.py, I have:

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

我有一个位于/static/core/js/jquery_countdown/jquery.countdown.min.js的文件,我尝试将其加载到模板中,如下所示:

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

<script type="text/javascript" src="{% static 'core/js/jquery_countdown/jquery.countdown.min.js' %}"> </script>

同一模板的顶部看起来像

{% extends "contest/base.html" %}
{% load static %}

这将导致以下服务器错误:

[23/Mar/2018 10:12:08] "GET /static/core/js/jquery_countdown/jquery.countdown.min.js HTTP/1.1" 404 1858

我错过了什么?

axr492tv

axr492tv1#

在应用目录中创建文件夹static_files。并将所有静态文件放入其中。然后使用以下设置

STATIC_URL = '/static/'
STATIC_ROOT = join(APPS_DIR, "static/")
STATICFILES_DIRS = [join(APPS_DIR, 'static_files')]

如果没有解决问题,运行python manage.py collectstatic命令,它会将所有静态文件(不仅来自你的应用,也来自django管理员,第三方应用等)复制到STATIC_ROOT文件夹。

详细信息

对于本地服务,django服务器将查看STATICFILES_DIRS。因此您不需要运行python manage.py collectstatic命令。所有外部应用程序可能都有STATICFILES_DIRS,它们放置静态文件的位置。对于生产服务器,您需要将分散在所有应用程序中的所有静态文件收集到一个位置。这就是python manage.py collectstatic命令所做的。它会将所有静态文件复制到STATIC_ROOT目录

hfyxw5xn

hfyxw5xn2#

您仅在应用程序目录中搜索静态文件,但您的文件位于全局静态文件中。您应使用注解STATICFILES_DIRS设置指定要搜索静态文件的所有位置。

z3yyvxxp

z3yyvxxp3#

我发现这对我很有效。(开发)

(我选择将其命名为“zStatic”,以将其保存在根(项目文件夹)的底部,这样它就不会出现在我所有的应用程序中。更容易定位。)

设置.py

STATIC_URL = 'zStatic/'  
STATICFILES_DIRS = (  
BASE_DIR/'zStatic',  
)

INSTALLED_APPS = 
[
...
'django.contrib.staticfiles',
...
]

基本.html(* 基本模板 *)

<head>  
    {% load static %}
    <link rel="stylesheet" type="text/css" href="{% static 'css/mycss.css' %}"> 
</head>

相关问题