2012-10-03 39 views
2

我是django的新手,並試圖創建個人科技博客。我在webfaction上託管。我使用this video設置了博客。但樣式表不起作用。我跟着the step-by-step procedure創建webfaction提到的靜態文件,但仍然stlyesheet不起作用。爲css文件設置django

我創建了一個靜態的應用程序:staticapp並將其與/static 添加到網站中的webfaction文檔提及。

settings.py

STATIC_ROOT = 'home/myaccount/webapps/staticapp' 
    STATIC_URL = 'http://myblogtest.myaccount.webfactional.com/static' 
    STATICFILES_DIRS = ('junk','static',) 


INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.admin', 
    'django.contrib.admindocs', 
    'blog', 
    ) 

我從我的html頁面引用如下:

<link rel="stylesheet" type="text/css" href="static/style/style.css" /> 

我失去了任何一步?我可以看到很多回答說要在urls.py中添加代碼段,但在Webfaction的文檔中沒有提及。所以我沒有那樣做。

我可以看到許多人都面臨同樣的問題,但答案並沒有幫助我,因爲我是一個新手。請幫助我設置此。 :)

回答

3

STATIC_ROOT需要有預謀斜線/,即/home...home...

不要添加static目錄STATICFILES_DIRS。你有我的許可,讓任何人建議你用最近的鈍器做這件事。 static目錄應該而不是在開發中完全存在,並且在生產中它應該只能通過python manage.py collectstatic創建或修改。

在任何每個應用程序的個人static目錄或一個完全不同的項目級目錄,即該目錄不應該是相同的MEDIA_ROOTSTATIC_ROOT DO存儲靜態資源。然後,將這個目錄添加到STATICFILES_DIRS

在Django中1.4+,你應該在你的模板使用{% static %}模板標籤:

{% load static from staticfiles %} 
<img src="{% static "images/hi.jpg" %}" alt="Hi!" /> 

這會自動將網址爲您的STATIC_URL部分,所以你所提供的路徑參數應該是相對於。

在Django 1。3,在確保'django.core.context_processors.static'出現在您的TEMPLATE_CONTEXT_PROCESSORS設置的某處後,您將使用{{ STATIC_URL }}。您的觀點還需要利用RequestContext,這意味着使用基於類別的觀點,render方法或傳遞context_instance=RequestContext(request)render_to_response

如果你想Django的,以服務發展爲便於靜態文件,你可以添加以下到您的urls.py結束:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns 
urlpatterns += staticfiles_urlpatterns() 

這將在生產環境中(DEBUG=False)不工作。對於生產,您需要運行python manage.py collectstatic,然後讓您的前端網絡服務器(nginx,Apache等)在STATIC_URL處提供目錄服務。

+1

是的!有效!!!謝謝@Chris :) – Robby

1

您已在設置中定義了STATIC_URL;你應該在你的HTML模板

<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/style/style.css"> 

只要你沒有刪除在設置TEMPLATE_CONTEXT_PROCESSORS什麼,應該工作使用。

您還可以考慮使用資產管理器爲您生成模板中的所有JS和CSS鏈接,而不是自己編寫它們。 django-pipeline真的很好,並且可以爲你處理像JS和CSS連接和壓縮之類的東西。

+0

嘗試使用{{STATIC_URL}}。它沒有幫助。你想知道關於我跟蹤的過程的其他信息嗎? – Robby