繁体   English   中英

为什么没有加载 static 文件? | Django

[英]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">

目录结构

点击此处查看项目目录结构图片

代码说明

  • 只需在根目录中添加 static 文件并尝试在模板中导入它们,但 css 文件未加载
  • 但是某些媒体文件已成功加载,例如此媒体<link rel="shortcut icon" type="image/jpg" href="{% static 'img/logo.png' %}" />
  • Also in dir structure, we can see img and css folder at same place in static folder and images from image folder are loaded but css from css folder does not.

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM