静态CSS文件未在Django项目中更新/加载

nhaq1z21  于 2023-02-05  发布在  Go
关注(0)|答案(2)|浏览(152)
    • 问题:**我对CSS文件所做的任何更改都没有应用到HTML页面。当我尝试创建新的HTML/CSS文件时,我在开发人员模式下检查页面时收到错误。错误显示找不到我的CSS文件。

在开发人员模式下检查页面时出现确切错误
GET http://127.0.0.1:8000/static/css/other.css net::ERR_ABORTED 404 (Not Found)

    • 背景:**我正在创建一个基本的图片编辑网站,使用django,html/css,并注入JS来应用一些过滤器到图片上。以前我可以做一些修改,它们会反映在页面上,但现在我甚至可以删除我的css文件,它仍然使用旧版本。
    • 我尝试过的事**

1.进入设置清除浏览器缓存
1.已禁用开发人员模式下的缓存
1.附加css文件版本?v1.1以强制休息(导致上述404错误)
1.在终端中运行collectstatic
1.已清除在私有窗口中打开网站的缓存
1.看了几个youtube的视频设置静态文件目录,我认为它是正确的。在某个时候,我的css是加载和更新,因为我作出了改变。

    • 目录布局**

这些是我的设置

    • 设置. py**
BASE_DIR = Path(__file__).resolve().parent.parent
DEBUG = True
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'Image_API',
    'rest_framework',
]
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'Image_API.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates']
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
STATIC_URL = 'static/'

STATICFILES_DIRS = [
   os.path.join(BASE_DIR, '../static'),
]

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), '../static')
    • URL. py文件**
from django.contrib import admin
from django.urls import path
from Image_API import views
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = [
    path('',views.upload2, name='upload'),
    path('upload/', views.upload2, name='upload'),
    path('other/', views.other),
]

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

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()
    • HMTL文件如何引用css**

我在页面的顶部加载了static,并在header标记中链接到css。

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

bt1cpqcv1#

问题可能来自STATIC_URL设置和/或STATIC_ROOT。请尝试将其更改为:

STATIC_URL = 'static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

您可能还需要检查**urls.py**文件是否设置正确:

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

在进行这些更改后重新启动服务器以进行确认。

pscollect static在部署期间运行

vtwuwzda

vtwuwzda2#

您可能忽略并更新了/staticfiles/css/中的CSS。相反,请尝试在/media/css中更新它。staticfiles目录是在您运行python www.example.com collectstatic时自动生成manage.py的。您可以尝试删除staticfiles目录并运行python manage.py collectstatic,看看它是否修复了该问题。

相关问题