2013-03-10 115 views
3

我的静态文件怎么不能提供服务?或者只有其中的一些我不能说。我已经尝试了一切。我不知道问题在哪里。我需要支持让我的静态文件在开发和生产过程中工作。但帮我发展首先请django静态文件错误

我试图让我的staticfiles上班,我得到这个错误

Django version 1.4.3, using settings 'menu.settings' 
Development server is running at http://127.0.0.1:8000/ 
Quit the server with CONTROL-C. 
[10/Mar/2013 15:12:37] "GET/HTTP/1.1" 200 1868 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run 
    self.result = application(self.environ, self.start_response) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/handlers.py", line 68, in __call__ 
    start_response) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/handlers/wsgi.py", line 241, in __call__ 
    response = self.get_response(request) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/handlers.py", line 57, in get_response 
    return self.serve(request) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/handlers.py", line 50, in serve 
    return serve(request, self.file_path(request.path), insecure=True) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/views.py", line 36, in serve 
    absolute_path = finders.find(normalized_path) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/finders.py", line 238, in find 
    for finder in get_finders(): 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/finders.py", line 256, in get_finders 
    yield get_finder(finder_path) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/utils/functional.py", line 27, in wrapper 
    result = func(*args) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/finders.py", line 277, in _get_finder 
    (Finder, BaseFinder)) 
ImproperlyConfigured: Finder "<class 'django.contrib.staticfiles.finders.FileSystemFinder'>" is not a subclass of "<class 'staticfiles.finders.BaseFinder'>" 
[10/Mar/2013 15:12:37] "GET /static/css/screen.css HTTP/1.1" 500 59 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run 
    self.result = application(self.environ, self.start_response) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/handlers.py", line 68, in __call__ 
    start_response) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/handlers/wsgi.py", line 241, in __call__ 
    response = self.get_response(request) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/handlers.py", line 57, in get_response 
    return self.serve(request) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/handlers.py", line 50, in serve 
    return serve(request, self.file_path(request.path), insecure=True) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/views.py", line 36, in serve 
    absolute_path = finders.find(normalized_path) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/finders.py", line 238, in find 
    for finder in get_finders(): 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/finders.py", line 256, in get_finders 
    yield get_finder(finder_path) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/utils/functional.py", line 27, in wrapper 
    result = func(*args) 
    File "/home/talisman/virt_env/menu/local/lib/python2.7/site-packages/staticfiles/finders.py", line 277, in _get_finder 
    (Finder, BaseFinder)) 
ImproperlyConfigured: Finder "<class 'django.contrib.staticfiles.finders.FileSystemFinder'>" is not a subclass of "<class 'staticfiles.finders.BaseFinder'>" 
[10/Mar/2013 15:12:37] "GET /static/css/print.css HTTP/1.1" 500 59 

这是我的settings.py

if socket.gethostname() == 'Pangolin': #Brian's Development Laptop 
    DEBUG = TEMPLATE_DEBUG = True 
    TEMPLATE_DIRS = ('/home/talisman/projects/menu/templates',) 
    SQL_LITE_NAME = '/home/talisman/projects/menu/db4.db' 
    STATIC_ROOT = '/home/talisman/projects/menu/static/' 
    STATICFILES_DIRS = (
     # Put strings here, like "/home/html/static" or "C:/www/django/static". 
     # Always use forward slashes, even on Windows. 
     # Don't forget to use absolute paths, not relative paths. 
     '/home/talisman/projects/menu/staticfiles/', 
     ) 

回答

3

你有错误配置staticfiles在你的设置也许?

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

请确保您有背景处理器:

TEMPLATE_CONTEXT_PROCESSORS = [ 
    ... 
    'django.core.context_processors.static', 
    ... 
] 

也不要使用这样的路径,用于提供绝对路径...

from os.path import join, dirname, normpath 

LOCAL_PATH = normpath(join(dirname(__file__), '..')) 

那么你可以做...

# Additional locations of static files 
STATICFILES_DIRS = (
    LOCAL_PATH + '/public/common/', 
) 

=========

这里是我怎么设置我的了

在我安装的应用程序一个例子,我要确保我有

'django.contrib.staticfiles', 
+0

不,我有正确的STATICFILES_FINDERS =( “django.contrib中.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'django.contrib.staticfiles.finders.DefaultStorageFinder', ) – Klanestro 2013-03-10 20:31:10

+0

但你说得对,我评论一下它只是列表中的错误如何解决它? – Klanestro 2013-03-10 20:33:05

+0

什么是你的媒体根? – 2013-03-10 20:37:14