Django

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

  • May 29, 2011

我已經使用 Python 2.6 在我的 BlueHost 帳戶上設置了 Django 1.3,它執行良好,除了當我進入管理區域時,它沒有任何 css/格式——我得到的只是文本。在我的研究中,我發現我需要設置 Web 伺服器來“提供”靜態文件,Django 不這樣做(使用 Django 開發伺服器時除外)。

我做了幾次嘗試,但沒有成功……這是目前設置:

Settings.py:

ADMIN_MEDIA_PREFIX = '/static/admin/'

.ht 訪問:

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/看到結果頁面。 謝謝。

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")

引用自:https://serverfault.com/questions/274696