Назад | Перейти на главную страницу

Как обслуживать медиафайлы администратора Django на Bluehost

Я установил Django 1.3 в свою учетную запись BlueHost с Python 2.6, и он работает хорошо, за исключением того, что когда я вхожу в область администратора, он лишен какого-либо css / форматирования - все, что я получаю, это текст. В своем исследовании я обнаружил, что мне нужно настроить веб-сервер для «обслуживания» статических файлов, Django этого не делает (за исключением случаев использования сервера разработки Django).

Я предпринял несколько попыток, но безуспешно ... Вот текущие настройки:

Settings.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/ Спасибо.

С некоторой помощью от http://blog.ruedaminute.com/2011/01/2011-installation-instructions-for-django-on-bluehost/ Я смог заставить его работать. Я отказался от символических ссылок и:

  1. скопировал медиафайлы администратора из /.local/lib/python2.6/site-packages/django/contrib/admin/media к http://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")