我在localhost上使用Windows XP / Django / apache / mod_python。除了管理CSS不呈现之外,所有部分都在工作。管理员工作,但没有HTML格式。我已经添加了:
settings.py
INSTALLED_APPS
'django.contrib.admin',
urls.py
from django.contrib import admin
admin.autodiscover()
(r'^admin/(.*)', admin.site.root),
conf/http.conf
<Location "/">
SetHandler python-program
PythonPath "['C:/django'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonDebug On
</Location>
<Location "/cpssite/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE myapplication.settings
PythonInterpreter /myapplication
PythonDebug On
</Location>
我很难过。我应该在某处添加更多代码吗?
答案 0 :(得分:27)
您的ADMIN_MEDIA_PREFIX是否存在?它与MEDIA_URL有什么不同?你是否包括尾随斜线?处理Apache是为了正确提供管理媒体吗?
默认的Django配置的管理媒体位于{Django install dir} / contrib / admin / media。 ADMIN_MEDIA_PREFIX默认为/ media /。所以你需要在Apache配置中添加这样的东西:
Alias /media/ /path/to/django/contrib/admin/media/
这将告诉Apache,对mysite.com/media/css/whatever.css的请求意味着提供/path/to/django/contrib/admin/media/css/whatever.css,这应该可以解决您的问题。
答案 1 :(得分:7)
我曾经遇到同样的问题,http.conf中的以下条目与我一起工作正常:
<Directory "Path-to-python/Lib/site-packages/django/contrib/admin/media/">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Alias /media/ "Path-to-Python/Lib/site-packages/django/contrib/admin/media/"
<Location "/mysite/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonOption django.root /mysite
PythonInterpreter mysite
PythonDebug On
PythonPath "['C:/Python/Django/apps'] + sys.path"
</Location>
答案 2 :(得分:2)
这是我特定于django的apache配置。请注意,django处理除了媒体之外的每个传入URL(位置/),它被禁用,数据从django的媒体目录提供。
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
#PythonOption django.root /
PythonDebug On
PythonPath "['e:/dj'] + sys.path"
</Location>
Alias /media e:/dj/django-trunk/django/contrib/admin/media/
<Location "/media">
SetHandler None
</Location>
答案 3 :(得分:1)
如果您不想让管理媒体使用/ media目录,您可以指定ADMIN_MEDIA_PREFIX ='admin_media',然后从您的网络服务器创建一个链接/别名,将/ admin_media /的调用重定向到/ usr / share / pyshared / django / contrib / admin / media(取决于您的操作系统)为您的生产服务器...
答案 4 :(得分:1)
由于这个问题很长一段时间,这可能不是一个相关的答案,但我把这些信息用于帮助碰巧在这里偶然发现的人。 从1.4版开始,不推荐使用ADMIN_MEDIA_PREFIX设置。这里描述了使用版本&gt; = 1.4提供静态和媒体文件的方式
https://docs.djangoproject.com/en/dev/releases/1.4/#django-contrib-admin
https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#serving-files
https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#serving-the-admin-files
基本上它可以分4个步骤设置 -
媒体文件相同