Django的Apache / mod_pythonpipe理CSS不出现pipe理表

我在本地主机上运行Windows XP / Django / apache / mod_python。 所有的部分正在与pipe理CSS不渲染的例外。 pipe理员工作,但没有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> 

我很难过 是否有更多的代码我应该添加到某个地方?

您的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,这应该解决您的问题。

我曾经有同样的问题,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> 

这是我的Django特定的Apache配置。 请注意,django处理每个传入的网址(位置/),除媒体,它被禁用,并从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> 

如果您不想让管理介质使用/ media目录,您可以指定ADMIN_MEDIA_PREFIX ='admin_media',然后从您的Web服务器创建一个链接/别名,将/ admin_media /重定向到/ usr / share / pyshared / django / contrib / admin / media(取决于您的操作系统)为您的生产服务器…

由于这个问题是很久以前的事了,这可能不是一个相关的答案,但是我正在把这些信息帮助那些偶然发生在我身上的人。 从版本1.4开始,ADMIN_MEDIA_PREFIX设置已被弃用。 这里描述了使用版本> = 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个步骤 –

  1. 将STATIC_ROOT设置为指向将为您的站点的所有静态文件提供服务的目录
  2. 设置应为其提供静态内容的STATIC_URL
  3. 运行manage.py collectstatic
  4. 将您的Web服务器配置为从STATIC_ROOT为STATIC_URL提供请求

媒体文件也一样