У меня есть проект Django 1.4, работающий на Python 2.7, в котором я использую Dajaxice 0.5.4.1. Я настроил его на своей машине для разработки (Windows 7), и все работает отлично. Однако, когда я развертываю свое приложение на рабочем сервере (Ubuntu 12.04), я получаю ошибку 404 для файла dajaxice.core.js
и не могу решить эту проблему, несмотря ни на что. Рабочий сервер работает с точно такими же версиями всего программного обеспечения.
Структура моего проекта выглядит так:
/myproject
/myproject/myproject-static/ <-- all the static files are here
/myproject/myproject-static/css/
/myproject/myproject-static/img/
/myproject/myproject-static/js/
/myproject/templates/
/myproject/myproject/
/myproject/main/
/myproject/app1/
/myproject/app2/
/myproject/app3/
etc.
Я следовал инструкциям по установке Dajaxice здесь и расставил все по своим местам ( в файлах settings.py
, ˙urls.pyand
base.html`).
Мой файл settings.py
также имеет следующие значения:
from unipath import Path
PROJECT_ROOT = Path(__file__).ancestor(3)
STATIC_ROOT = ''
STATIC_URL = '/myproject-static/'
STATICFILES_DIRS = (
PROJECT_ROOT.child('myproject-static'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'dajaxice.finders.DajaxiceFinder',
)
DAJAXICE_MEDIA_PREFIX = "dajaxice"
DAJAXICE_DEBUG = True
У меня есть директива Alias
в моем файле django.conf
, которая выглядит так:
Alias /myproject-static/ "/path/to/myproject/myproject-static/"
Я сделал collectstatic
на своем рабочем сервере и получил все статические файлы, собранные в нескольких папках в корне моего проекта. Итак, теперь, когда я смотрю на свой развернутый веб-сайт, я вижу, что CSS правильно применен, JavaScript работает нормально, а навигация по сайту работает так, как предполагалось. Все в порядке, за исключением того, что Ajax полностью сломан, поскольку dajaxice.core.js
никогда не включается.
Структура папки моего проекта после сбора статики выглядит так:
/myproject
/myproject/myproject-static/ <-- all the static files are originally here
/myproject/myproject-static/css/
/myproject/myproject-static/img/
/myproject/myproject-static/js/
/myproject/templates/
/myproject/admin/ <-- folder created with 'collectstatic' command
/myproject/css/ <-- folder created with 'collectstatic' command
/myproject/dajaxice/ <-- dajaxice.core.js is located here
/myproject/django_extensions/ <-- folder created with 'collectstatic' command
/myproject/img/ <-- folder created with 'collectstatic' command
/myproject/js/ <-- folder created with 'collectstatic' command
/myproject/myproject/
/myproject/main/
/myproject/app1/
/myproject/app2/
/myproject/app3/
etc.
Я делаю что-то совершенно неправильно со своими статическими файлами здесь?
Что еще я должен попытаться исправить эту простую ошибку?