首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django静态文件错误

django静态文件错误
EN

Stack Overflow用户
提问于 2013-03-11 04:19:41
回答 1查看 1.4K关注 0票数 3

为什么我的静态文件不能使用?或者只有一些我不知道。我几乎什么都试过了。我不知道问题出在哪里。我需要支持让我的静态文件在开发和生产期间工作。但是请先帮我开发一下

我正在尝试让我的静态文件正常工作,我得到了这个错误

代码语言:javascript
复制
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

代码语言:javascript
复制
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/',
        )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-11 04:29:54

你可能在你的设置中配置了错误的静态文件?

代码语言:javascript
复制
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

确保您有上下文处理器:

代码语言:javascript
复制
TEMPLATE_CONTEXT_PROCESSORS = [
    ...
    'django.core.context_processors.static',
    ...
]

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

代码语言:javascript
复制
from os.path import join, dirname, normpath

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

然后你就可以...

代码语言:javascript
复制
# Additional locations of static files
STATICFILES_DIRS = (
    LOCAL_PATH + '/public/common/',
)

=========

下面是我如何设置我的设置的示例

代码语言:javascript
复制
MEDIA_ROOT = ''
MEDIA_URL = ''

STATIC_ROOT = '/uploaded/'
STATIC_URL = '/static/'

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

    # List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

在我安装的应用程序中,我确保我有

代码语言:javascript
复制
'django.contrib.staticfiles',
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15327097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档