[英]Why static files are not loading? | Django
我正在尝试加载 static 文件,但它显示以下错误:
GET http://127.0.0.1:8000/static/css/user/style.css net::ERR_ABORTED 404 (Not Found) - home:25
GET http://127.0.0.1:8000/static/css/user/style.css 404 (Not Found) - home:25
GET http://127.0.0.1:8000/static/img/logo.png 404 (Not Found) - home:149
GET http://127.0.0.1:8000/static/img/logo.png 404 (Not Found) - home:1
我的代码:
-行政
设置.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
网址.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('Welcome.urls')),
path('auth/', include('Authentication.urls')),
path('ad/', include('Ads.urls')),
path('user/', include('UserDashboard.urls')),
path('admin/', include('AdminDashboard.urls')),
]
if settings.DEBUG:
urlpatterns = urlpatterns + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
urlpatterns = urlpatterns + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
模板
<link href="{% static 'css/user/style.css' %}" rel="stylesheet">
目录结构
代码说明
<link rel="shortcut icon" type="image/jpg" href="{% static 'img/logo.png' %}" />
。STATICFILES_DIRS = [BASE_DIR / '资产']
STATIC_URL = '/静态/'
STATIC_ROOT = BASE_DIR / '静态'
MEDIA_URL = '/媒体/'
MEDIA_ROOT = BASE_DIR / '媒体'
将以下代码添加到您的 settings.py
确保您拥有包含所需文件的资产目录。 在根目录中创建 static 和 media 文件夹。
如果您使用的是 DEBUG=True,那么您不需要在主 urls.py 中设置任何有关 static 文件的内容。 所以你可以排除这些行。 它们用于 DEBUG=False
如果 settings.DEBUG: urlpatterns = urlpatterns + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) urlpatterns = urlpatterns + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
最后运行
python manage.py collectstatic
命令,你都准备好了。
Settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
STATIC_ROOT = os.path.join(BASE_DIR, "static_collect")
urls.py
+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在 urlpatterns 的右括号之后添加这些。
触发此命令python manage.py collectstatic
在所有这些设置之前,在您的项目文件夹中创建一个 static 文件夹。 希望这对你有用
我有一个类似的问题,并设法用 settings.py 中的这些行来修复它:
INSTALLED_APPS = [
#
'django.contrib.staticfiles',
#
]
BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_URL = 'static/'
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]
我在 static 图像文件上遇到了类似的情况。 检查您的 settings.py 后
你的配置:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATIC ROOT 仅在您部署网站时才需要。
解决方案
在 django 4.1 版本中,如果您正在开发中,您可以简单地在 settings.py 中使用以下内容
STATIC_URL = 'static/'
STATICFILES_DIRS= [
BASE_DIR / 'static',
]
在这里,在STATCTICFILES_DIRS 下,“static”是您保存 static 文件类型的文件夹名称。
注意- 仔细检查模板中的 {%load static%}。
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.