簡體   English   中英

我如何將 css 文件加載到 Django 中的 html

[英]How do i load css file into html in Django

我正在嘗試創建一個 Django 應用程序,並且我已經進行了所有 static 設置,例如

設置.py

STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'CricketTeamManagement/static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

MEDIA_URL = '/media/'

URLS.py

from django.conf import  settings
from django.conf.urls.static import static
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('Management.urls'))
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

I have also created a static folder in Main project folder and ran python manage.py collectstatic it created a new static folder outside and it has admin folder in it and sub folders like js,css,font,images and collectstatic collects the images and stores在這個文件夾中。 我看到 static 文件顯然可以正常工作。

所有的models.py圖像字段都上傳到媒體文件夾,甚至可以正常工作。

問題來了

我的 css 文件沒有采用它的 styles 並且沒有改變我的 html 元素。 如果我在 html 文件中有以下代碼,則樣式有效,如果我將其分離到 css 文件夾並通過刪除樣式標簽創建 css 文件,則它不起作用。

 <style> body { background-color: powderblue; } h1 { color: blue; } p { color: red; } </style>

當我看到 css 文件未找到錯誤時,它得到了修復制作 html 檢查 css 文件。

不確定是什么問題。 提前致謝。

更新HTML 中的項目格式鏈接標簽

您必須在模板中以這種方式鏈接您的 css 文件,並且僅在生產階段不需要 collectstatic 命令

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

您的 index.html 中的 href 現在指的是您的網站/樣式表.css。 Django doesn't know where that URL is as you defined your static URL as "/static/". 位於 STATIC_DIRS 中的 Static 將被加載到 URL yourwebsite/static/stylesheet.css 下。 這就是您在 CSS 文件中獲得 404 的原因。

更改您的 index.html 以使用 Django 內置模板標簽,使其更容易。

{% load static %}
Some code here.....
<link rel="stylesheet" type='text/css' href="{% static 'css/stylesheet.css' %}">

這將自動為您的 static 文件生成正確的 url 文件,這應該可以解決問題。

您不需要在開發中運行 collect static,因為 django 的服務器會處理 static 文件。 在生產期間將需要運行收集 static 並將您的反向代理等指向 static 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM