【发布时间】:2011-05-09 00:13:30
【问题描述】:
我已经停止使用 django 1.1 创建新项目,并且从那时起只处理已经创建的应用程序。从那以后,我猜想静态服务发生了某种变化(项目使用的是 Django 1.2.4)。我挣扎了几个小时但没有任何结果,所以如果有人知道我做错了什么,请告诉我。
我的设置:
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
MEDIA_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/media/'
SECRET_KEY = '(d9bahjuyy_i-)4b(w9gc5a&s&5jemcn7&b^wrbuemah3p-6^#'
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
TEMPLATE_DIRS = (
os.path.join(PROJECT_PATH, 'templates'),
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.admindocs',
'project',
)
TEMPLATE_CONTEXT_PROCESSORS = (
"django.core.context_processors.auth",
"django.core.context_processors.request",
"django.core.context_processors.media",
"django.core.context_processors.csrf",
"django.core.context_processors.i18n",
)
网址:
urlpatterns += patterns('',
(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes' : True}),
)
媒体文件位于../project_path/media
在模板中,我将 {{ MEDIA_URL }} 路径设为 /static/,但我的文件未加载。转到http://127.0.0.1:8000/static/(带或不带最后一个斜杠)显示根页面。 Firebug 显示页面的 html 代码代替 javascript 文件。我宁愿期待 404 错误。问题出在哪里?
切换到 1.3 。问题依然存在。
【问题讨论】:
-
尝试 django-staticfiles,或者更好地升级到 Django 1.3,其中包括一个改进版本:docs.djangoproject.com/en/1.3/howto/static-files
-
我已经切换到 1.3 还是一样 + 现在 STATIC_URL 是空的。
-
你能显示更多你的 urls.py,我猜你的 url 中有一个正则表达式,它会在到达静态服务条目之前捕获你的所有 url。
-
既然您已将其公开,也许您想更改您的 SECRET_KEY 设置...
标签: django static django-statistics