2012-11-15 125 views
2

我看了幾乎所有的在這裏的例子和文檔中的靜態圖像,它只是沒有在我的settings.py文件我都Django中找不到模板

工作,所以有

STATIC_ROOT = '/mattr/static/' 
STATIC_URL = '/mattr/public/' 

STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder', 
'django.contrib.staticfiles.finders.AppDirectoriesFinder',) 

TEMPLATE_CONTEXT_PROCESSORS = ('django.core.context_processors.static',) 

TEMPLATE_DIRS = ('mattr/public',) 

基本上一切都需要處理靜態文件。

urls.py我有一個網頁(模板負荷就好了),正常模式和有這種額外的行

urlpatterns += staticfiles_urlpatterns() 

views.py我有(這是主頁) :

def home(request): 
    t = get_template('index.html'); 
    html = t.render(RequestContext(request)) 
    return HttpResponse(html) 

而且在模板文件的index.html我也行

<img src="{{ STATIC_URL }}media/images/Mattr1.png"> 

但它從來沒有顯示圖像。即使當我試圖直接轉到圖像文件http://127.0.0.1:8000/mattr/public/media/images/Mattr1.png它給了我一個Page Not Found錯誤。 我有點困惑所在的路徑,從而是因爲我的模板頁面加載我算了路徑糾正

+0

顯示模板代碼 –

+0

如果這個http://127.0.0.1:8000/mattr/public/media/images/Mattr1.png錯誤,您期待什麼網址?這將有助於重新配置您的設置 –

+0

@AamirAdnan基本上從我的網站的根目錄(manage.py的位置)我有文件在「/mattr/public/images/Mattr1.png」,所以我期望它顯示 –

回答

1

,當你在談論靜態文件,這樣做:

STATIC_URL = '/static/' #or whatever you want 

STATICFILES_DIRS = (
    '/path/to/static/root/directory/', 
) 

不要忘了昏迷或Django的管理不會有它的CSS。 它的完成,沒有必要,如果你在談論媒體更改urls.py

事情,這樣做:

MEDIA_ROOT = '/media/' # or whatever you want 

MEDIA_URL = '/path/to/media/root/directory' 

,並把這個底部在myproject.urls

import settings 
urlpatterns += patterns('', url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT,}),) 

完成了!

+0

**無需更改任何內容urls.py ** 我已添加靜態重定向到我的url.py,這是防止這個工作。 – ECH

0

試試這個在您的settings.py開始:

import os 
DIRNAME = os.path.dirname(__file__) 

STATIC_ROOT = os.path.join(DIRNAME, 'static') 

STATIC_URL = '/static/' 

在您的模板:

{{STATIC_URL}}css/etc... 

您也覆蓋你TEMPLATE_CONTEXT_PROCESSORS,而不是這樣做: 在你的settings.py

import django.conf.global_settings as DEFAULT_SETTINGS 

TEMPLATE_CONTEXT_PROCESSORS = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
"whatever_your_adding", 
) 
+0

因此,STATIC_ROOT線,我應該在哪裏放我的文件呢?它看起來像是在路徑 中增加了一個額外的「靜態」此外,模板行導致語法錯誤,因爲+ –

0

在路徑前面使用'/'表示你指的是根目錄,我猜不是這種情況。嘗試這樣做。

STATIC_ROOT = 'mattr/static/'