我已经使用 Python 2.6 将 Django 1.3 安装在我的 BlueHost 帐户上,它运行良好,但当我进入管理区域时,它没有任何 css/格式 - 我得到的只是文本。在我的研究中,我发现我需要设置 Web 服务器来“提供”静态文件,Django 不会这样做(使用 Django 开发服务器时除外)。
我尝试过几次,但没有成功...以下是当前设置:
设置.py:
ADMIN_MEDIA_PREFIX = '/static/admin/'
.htaccess 文件:
AddHandler fcgid-script .fcgi
RewriteEngine On
Rewritebase /
RewriteRule ^(static/admin/.*)$ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /django/test1/mysite.fcgi/$1 [QSA,L]
项目静态文件 ../static/admin/ 中还有一个符号链接指向 ../django/contrib/admin/media
您可以在以下位置看到结果页面http://www.foreignlanguageflashcards.com/django/test1/admin/ 谢谢。
答案1
在以下帮助下http://blog.ruedaminute.com/2011/01/2011-installation-instructions-for-django-on-bluehost/我能够让它工作。我放弃使用符号链接,并且:
- 将管理媒体文件从复制
/.local/lib/python2.6/site-packages/django/contrib/admin/media
到http://www.foo.com/django/project/static/admin/media/
(我之前遇到的问题的一部分是将 django 项目目录与公共 url 目录混淆了) - 编辑 settings.py 以包含:
ADMIN_MEDIA_PREFIX = '/django/project/static/admin/media/'
- 清理 htaccess 使其看起来像:
AddHandler fcgid-script .fcgi RewriteEngine On Rewritebase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /django/project/mysite.fcgi/$1 [QSA,L]
- 如果有帮助的话,这里是 fcgi 脚本:
#!/usr/bin/python2.6 import sys, os
# Add a custom Python path.
sys.path.insert(0, "/home1/username/.local/lib/python2.6")
sys.path.insert(0, "/home1/username/django_projects")
# Switch to the directory of your project. (Optional.)
# os.chdir("/home1/username/django_projects/project")
# Set the DJANGO_SETTINGS_MODULE environment variable.
os.environ['DJANGO_SETTINGS_MODULE'] = "project.settings"
from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")