如何在 Bluehost 上提供 Django 管理媒体文件

如何在 Bluehost 上提供 Django 管理媒体文件

我已经使用 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/我能够让它工作。我放弃使用符号链接,并且:

  1. 将管理媒体文件从复制/.local/lib/python2.6/site-packages/django/contrib/admin/mediahttp://www.foo.com/django/project/static/admin/media/ (我之前遇到的问题的一部分是将 django 项目目录与公共 url 目录混淆了)
  2. 编辑 settings.py 以包含:ADMIN_MEDIA_PREFIX = '/django/project/static/admin/media/'
  3. 清理 htaccess 使其看起来像:
AddHandler fcgid-script .fcgi
RewriteEngine On
Rewritebase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /django/project/mysite.fcgi/$1 [QSA,L]
  1. 如果有帮助的话,这里是 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")

相关内容