2010-12-12 48 views
55

我讓使用django development version爲什麼我的Django管理站點沒有css樣式

一個Django管理網站,但它沒有一個CSS樣式:

alt text

我能做些什麼。

謝謝

+2

是否有引用的風格,不會被加載? – 2010-12-12 04:24:30

+1

你需要配置dev服務器來提供靜態文件:http://docs.djangoproject.com/en/1.2/howto/static-files/ – 2010-12-12 04:29:52

+0

@Pekka,是的,它是django的默認樣式,它在D :\ Python25 \ Lib \ site-packages \ django \ contrib \ admin \ media – zjm1126 2010-12-12 04:57:35

回答

14

ADMIN_MEDIA_PREFIX現已棄用,請改用STATIC_URL。在settings.py中設置STATIC_URL = '/static/'應該完成這項工作。嘗試:

import os.path import sys 

PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__)) 

然後:

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

上的Django 1.4阿爾法預SVN-16920工程。

+1

這對我不起作用。 – 2012-09-28 17:40:12

+0

這也不適用於我。我注意到如果我在靜態/ css /內部移動(手動)文件夾'static/admin',那麼我可以訪問css文件。所以看起來我可以訪問css文件,只要它們在'static/files'裏面,但是collectstatic不會把它們放在那裏。當然,手動移動文件夾不起作用,因爲模板繼續指向'static/admin'。 – 2012-11-16 13:45:25

+0

試圖運行使用Django v1.2創建的管理界面,在1.3上進行測試,然後在v1.4上重新部署時爲我工作。運行Ubuntu 12.04 LTE – 2012-12-15 02:35:55

46

設置你的STATIC_ROOTSTATIC_URL後,您可能需要運行

python manage.py collectstatic 
+0

非常有幫助。謝謝。 – 2012-04-13 04:35:51

+0

謝謝。這適用於django 1.4。3 – alok 2013-01-16 09:04:15

+1

這也適用於1.5.2。我沒有更改或添加任何文件或代碼 – lukik 2013-09-02 19:27:10

3

/project_name/project_name/settings.py需要設置STATIC_URL要告訴你的站點使用哪種網址靜態文件。

然後將STATIC_ROOT設置爲文件系統上的某個文件夾,與您在STATICFILES_DIRS列表中列出的任何目錄不同。

一旦設置了STATICFILES_ROOT,您將從項目目錄運行python manage.py collectstatic

這將複製所有管理靜態文件和STATICFILES_DIRS列表中列出的任何其他文件夾中的所有文件。基本上,這會將所有靜態文件放在一個位置,以便您在部署網站時將它們移動到CDN。如果你和我一樣,沒有一個CDN,那麼你有兩種選擇:

  1. 添加設置爲STATIC_ROOTSTATICFILES_DIRS列表中的文件夾。這將允許django中的靜態文件查找器查找所有靜態文件。
  2. 將靜態文件的整個文件夾移動到文件系統的其他位置,並指示STATICFILES_DIRS包含該新位置。

我對這個答案的安全性沒有評論,它只是我能夠用我的web服務器開發小型項目的方式。我希望你會想要一個CDN作爲Django的建議,如果你正在做更大規模的任何事情。

更新: 我剛剛遇到這個問題,這種方法並沒有完全做我想你想要的。在我運行collectstatic後,結果爲我工作的是我剛剛將它放入STATICFILES_ROOT的管理靜態文件複製到我用於我自己的靜態文件的目錄中。這解決了我的問題。

+0

您的更新也適用於我。謝謝! – 2018-01-21 05:30:29

9

我遇到了這個問題以及Django書籍教程。 在第5章|安裝模型時,本書在提到默認INSTALLED_APPS- 時指出:「通過在其前面放置一個哈希字符(#)臨時註釋掉所有這六個字符串。」 http://www.djangobook.com/en/2.0/chapter05.html

然後,在第6章,這本書告訴讀者這些取消註釋6線 - 4「我們現在在第5章取消其註釋,註釋了這四個INSTALLED_APPS條目註釋。」

但statcifiles線是什麼是需要恢復CSS管理頁面,所以取消該 「django.contrib.staticfiles」,

+0

如上所示,在settings.py文件中取消註釋'django.contrib.staticfiles'也適用於我。 'django.contrib.staticfiles'應該默認存在於INSTALLED_APPS下的settings.py文件中。感謝克里斯的建議。 – user2471242 2013-06-10 14:08:14

+0

也從Django Book中得到了。這一個字符的刪除做到了。 – 2013-07-28 22:44:46

5

我看了其他幾個線程試圖解決這一問題......使出與其他線程中的別名一樣。 這假定您自己的自定義應用程序正確提供靜態文件,這將表明您的STATIC_ROOT和STATIC_URL具有正確的設置。

STATIC_ROOT = '' 
STATIC_URL = '/static/' 

然後(從靜態目錄):

[email protected]:/srv/www/mysite.com/app_folder/static$ sudo ln -s /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/ admin 

希望這可以幫助別人......有關於這個話題有很多的線程。 :(

+0

這是答案的作品像魅力謝謝你taylor.well完成 – Spikie 2017-03-03 12:18:26

1

確保'django.contrib.staticfiles'在你INSTALLED_APPS在你的settings.py

2

如果你使用Apache服務器來承載你的Django的網站,你需要確保靜態別名點到你的/目錄網站/ site_media/static /。如果你的靜態文件在/ site/site/site_media/static /目錄下,以前的Apache別名配置將不起作用

1

除了許多其他有用的答案之外,一個尚未注意到的問題從Django 1.3升級到1.6後,我的靜態文件目錄有一個到django admin靜態文件的錯誤符號鏈接。

我settings.py與配置:

STATICFILES_DIRS = (
    '/var/www/static/my-dev', 
) 

this answer

的Django現在希望找到的網址 /管理/下的管理員靜態文件。

我做了一個符號鏈接/var/www/static/my-dev/admin其設置爲:

admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/media/ 

這個位置不再在Django 1.6存在,所以我的鏈接更新爲:

admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/ 

現在我的管理網站正常工作。

0

雖然遵循Django教程,但我遇到了類似的問題,在我的情況下,問題在於提供css文件時開發服務器使用的mimetype。

將mimeType服務是「應用程序/ x-CSS」,這導致了在Chrome以下警告消息(在的開發工具的「網絡」標籤):

資源解釋爲樣式表,但用MIME轉移鍵入 應用程序/ x-CSS:「http://127.0.0.1:8000/static/admin/css/base.css

,我已經找到解決方法:

0:通過添加以下行Django的web應用程序的manage.py文件送達改變MIME類型

注:爲我工作使用Django 1.7.4關於Python 2.7和Chrome 40.0

0

同一類問題的同時發展在Django-1.10.5和python-2.7.13網站我遇到過。但在我的firefox-51和chrome中,登錄頁面能夠獲得css,但仍然沒有樣式。但奇怪的是它在IE-8上工作..

我試過做這裏提到的每一件可能的事情,並適合我的一套sw版本。沒有工作。

但是當我試圖在其他系統中的同一站點其中有蟒蛇-2.7.8,它的工作..

剛剛發佈,如果它可以幫助別人......

編輯:後來我發現在蟒蛇-2.7.13,寫在settings.py以下兩行(加清除瀏覽器的緩存)所做的伎倆

import mimetypes 
mimetypes.add_type("text/css", ".css", True) 
0

如果你有一個值settings.py中的STATICFILES_DIRS設置和聲明的文件夾不存在或錯誤的位置會導致管理員有沒有造型 e.g 通過定義 STATICFILES_DIRS =(os.path.join(BASE_DIR,「靜態」)) 和靜態文件夾不存在

相關問題