簡體   English   中英

Django加載靜態文件?

[英]Django loading static files?

Django 沒有加載我的靜態文件。 但是它正在加載我在靜態文件夾中的模板。 chrome 也沒有看到靜態文件,我什至沒有收到 404 錯誤,是的,它們鏈接在 html 中......但它們沒有顯示在網絡面板中

這是我的 settings.py 文件

    STATIC_ROOT = ''

    STATIC_URL = '/static/'

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

這是我的 html

    <head>
        <title>MySite | Home</title>
        <meta charset="UTF-8">
        <link rel="stylesheet" type='text/css' src='css/normalize.css'>
        <link href='http://fonts.googleapis.com/css?family=Questrial|Josefin+Sans' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" type="text/css" src='css/main.css'>
        <script src="https://maps.googleapis.com/maps/api/js"></script>
    </head>

抱歉,我知道這個問題已被問過多次,我已經嘗試了所有這些解決方案,但都沒有運氣。 我花了 2 天的時間試圖解決這個問題

我對靜態文件采用的方法基本上是docs 中概述的方法。

在本地開發中,只要django.contrib.staticfiles在你的INSTALLED_APPS並且DEBUG = True ,Django 就會自動從STATIC_ROOT指定的目錄中提供靜態文件

我的項目結構通常如下所示:

my_project/
    some_app/
    lib/
    static/  <------- STATIC_ROOT - used in production. `collectstatic` collects here
    static_assets/ <- STATICFILES_DIRS - used in local dev
        css/
        less/
        js/
        images/
    templates/  <---- TEMPLATE_DIRS
    manage.py

settings.py 通常是:

INSTALLED_APPS = (
    . . .
    'django.contrib.staticfiles',
    . . .
)

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static_assets'),
)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates'),
)

然后在模板中,您可以再次使用 staticfiles 應用程序的模板標簽來構建靜態文件的路徑:

{% load static from staticfiles %}

<link rel="stylesheet" href="{% static 'css/normalize.css' %}" />

另請注意,對於<link>標記,您需要為 url 使用href屬性而不是src

在您的 setting.py 文件中添加這個

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

在您的應用程序中創建一個名為 static 的文件夾,並在您的模板文件中添加此 {% load static %}

暫無
暫無

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

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