2015-05-08 271 views
1

Django沒有加載我的靜態文件。但它正在加載我的模板,它們在靜態文件夾中。此外鉻沒有看到靜態文件,我甚至沒有得到404錯誤,是的,他們是鏈接在HTML ...但他們沒有出現在網絡面板Django加載靜態文件?

繼承人我的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天的時間試圖弄清楚這個問題

+0

你的模板爲什麼會在靜態文件夾中? –

+0

@DanielRoseman這不好嗎?我看過的教程就是這麼做的,那裏對他們來說會更好? – Groovietunes

+2

我幾乎不知道如何迴應。這些是完全不同的東西。我非常懷疑任何體面的教程會這樣做。無論如何,你還沒有提供足夠的信息來回答這個問題。你在開發中運行嗎? DEBUG是真是假?爲什麼你的'STATIC_ROOT'是空的?你運行了'manage.py collectstatic'嗎?你的TEMPLATE_DIRS的價值是什麼?爲什麼你使用相對路徑來指向你的模板中的CSS文件? –

回答

1

我使用靜態文件的方法基本上是docs中列出的。

在當地的發展,Django會從只要在STATIC_ROOT指定的目錄中自動提供靜態文件作爲django.contrib.staticfiles在你INSTALLED_APPSDEBUG = True

我的項目結構通常是這樣的:

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 

設置.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>標籤,你需要使用href財產的網址,而不是src

+0

非常感謝!問題出在HTML文檔的load static和href修復了這個問題。我想最好是逐字按照文檔! – Groovietunes

+0

不客氣。總是樂於提供幫助。 – Brandon