Django 1.3静态文件和显示内容

时间:2011-04-14 11:29:31

标签: django django-templates

我是django的新手,我正在尝试加载js文件和图像,视图和模板系统。但我有问题。开发我的配置如下。

IN SETTINGS.py

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    'E:/GIS/recursos/js',
)

STATIC_ROOT = ''

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

)

URLS.py

urlpatterns = patterns('',

    url(r'^prueba/', current_datetime),
)

urlpatterns += staticfiles_urlpatterns()

页面加载但不加载我看到的日志中的静态文件

[14/Apr/2011 10:55:41] "GET /prueba/ HTTP/1.1" 200 631
[14/Apr/2011 10:55:41] "GET /prueba/prueba.js HTTP/1.1" 200 631
[14/Apr/2011 10:55:41] "GET /prueba/img.jpg HTTP/1.1" 200 631
[14/Apr/2011 10:55:41] "GET /prueba/img.jpg HTTP/1.1" 200 631

提前致谢

2 个答案:

答案 0 :(得分:2)

您的静态文件应该在/static/而不是/prueba/提供,因为您的日志显示...请检查您的模板。

修改

要检查的一些事情:

  1. 检查您的settings.py文件并查看

        'django.core.context_processors.static',
    

    在您的TEMPLATE_CONTEXT_PROCESSORS

  2. 检查DEBUG=True

  3. 检查您已安装的应用中是否有'django.contrib.staticfiles'

  4. 阅读django docs以管理静态文件和context processors

      

    作为简要回顾,背景   处理器将变量添加到   每个模板的上下文。然而,   上下文处理器需要你   渲染时使用RequestContext   模板。这会自动发生   如果您使用的是通用视图,但是在   你需要手工写的观点   显式使用RequestContext来查看   这是如何工作的,并阅读更多   详细信息,请查看Subclassing   上下文:RequestContext。

答案 1 :(得分:0)

我在使用这个新的静态文件应用程序时遇到了困难,但我现在正在使用它。您的settings.py似乎对我很好。显然,诀窍是在您的视图中使用正确的context_instance。在开发模式下无需使用staticfiles_urlpatterns()

所以这就是我在观点中添加的内容:

from django.template import RequestContext

[...]
def my_view(request):
   [...] 
   return render_to_response("templatename.html", {'form': form},
context_instance=RequestContext(request))

或者您也可以使用render快捷方式,其效果类似render_to_response RequestContext

from django.shortcuts import render

[...]
def my_view(request):
   [...] 
   return render(request, 'templatename.html', {'form': form})

HTH

参考:http://groups.google.com/group/pyweb-il/browse_thread/thread/957d6215e3716fa7?pli=1