2012-11-15 97 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/'