Django
如何在 Bluehost 上提供 Django 管理媒體文件
我已經使用 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/的幫助下,我能夠讓它工作。我放棄了使用符號連結,並且:
- 將管理媒體文件從復製
/.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")