HTML 文件未從 CSS 更新


網頁使用多種基本技術構建,其中 HTML(超文字標記語言)和 CSS(層疊樣式表)是最主要的兩種。HTML 為頁面提供結構,而 CSS 則負責各種裝置的(視覺和聽覺)佈局。

CSS 可以透過三種不同的方式新增到 HTML 文件中:內聯 - 當在 HTML 元素中使用 <style> 屬性時。內部 – 當將 <style> 元素插入到 <head> 部分時。外部 – 當使用 <link> 元素將外部 CSS 檔案連結到 HTML 程式碼時。

假設您正在使用 HTML 和 CSS 建立一個 Django 應用程式,並且遇到 CSS 樣式未反映在 HTML 文件中的情況,即使您已將 CSS 檔案連結到該文件。.css 檔案與 .html 檔案位於同一路徑下,但更改未反映在 HTML 文件中。程式碼如下所示。

<head>
    <link type= "css" rel= "stylesheet" href= "style.css" media= "screen"/>
    <meta charset= "UTF-8">
    <meta http-equiv= "X-UA-Compatible" content= "IE=edge">
    <meta name= "viewport" content= "width=device-width, initial-scale= 1.0">
    <title>HTML Document</title>
</head>

當您將滑鼠懸停在外部樣式錶鏈接上時,您可以按住 Ctrl 並單擊它,它將顯示在一個新視窗中,表示 .css 檔案已成功連結到 .html 檔案,並且這不是問題的原因。如果重啟伺服器/應用程式、為 css 檔案建立不同的個性化資料夾、更改 css 檔案的 href 等通用方法失敗,則應考慮清除 CDN 和瀏覽器快取。

瀏覽器可以獨立於伺服器指令頻繁地快取檔案。如果您新增或更改內聯 CSS 或 JavaScript 並且沒有看到 HTML 原始碼中反映的更改,則該頁面很可能已快取。當您在檔案中新增/修改 CSS 或 JavaScript 時,該檔案可能會被快取。解決方案可能是 1) 確保 CSS 和 JavaScript 正確入隊,以及 2) 更新伺服器引數。更新伺服器會強制瀏覽器重新下載檔案,這是一種不僅可以清除瀏覽器快取,還可以清除 CDN 快取的有效機制。

如果啟用了 CDN,靜態資產將被快取。如果您不想使用引數破壞快取,則應該能夠透過重新整理 CDN 快取來獲得相同的結果。(但是,在這種情況下,瀏覽器需要發出請求。)

即使在清除快取後問題仍然存在,您可能需要檢視 Django 的設定部分。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(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',
            ],
        },
    },
]
STATIC_URL = '/static/'

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

在專案根目錄或您想要的任何位置建立一個靜態和模板目錄,併為模板設定 TEMPLATES 中的“DIR”,併為 js 和 css 檔案設定靜態檔案。您必須將您的 js 和 css 檔案放在靜態目錄中。您還可以建立名為“js”的目錄在靜態目錄內。保留 js 檔案並在靜態目錄內建立一個“css”目錄以用於 css 檔案現在,在下面顯示的檢視中呈現您的 HTML 檔案。

from django.shortcuts import render
  
def index (request):
    return render(request, "index.html")

現在您將能夠在模板檔案中載入靜態檔案。

<!DOCTYPE html>
<head>
  {% load static %}
  <script src= "{% static 'my_app.js' %}"></script>   
  <title> Website </title>
</head>
<body>
<img src= "{% static 'img1.png' %}" alt= " my image" />
  {% block content %}{% endblock %}
</body>
</html>

也將 {% load static %} 新增到 HTML 檔案中。

{% load static %}
<!DOCTYPE html>
<html xmlns= "http://www.w3.org/1999/xhtml" lang= "en">
<head>
    
    <meta charset= "UTF-8">
    <meta http-equiv= "X-UA-Compatible" content= "IE=edge">
    <meta name= "viewport" content= "width=device-width, initial-scale= 1.0">
    <link type= "text/css" rel= "stylesheet" media= "screen" href= "{% static 'styles/style.css' %}"/>
    <title>Document</title>
</head>

最後,根據以下程式碼段修改 settings.py。

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    BASE_DIR / "static",
]

此外,在您的根專案(宣告 manage.py 的位置),您應該有一個靜態資料夾,在您的靜態資料夾中,您應該有樣式,在您的樣式中,您應該有您的 style.css 檔案。

資料夾路徑應類似於以下內容

static/styles/style.css

更新於: 2023年9月12日

395 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.