как включить css/javascript в django 0.96 для проекта appengine

Я использую django 0.96 для проекта appengine. Я хотел использовать javascript и css в своих html-файлах, к сожалению, я не могу сделать это через django... Одно решение (которое мне не нравится) - сделать мой app.yaml примерно таким:

handlers:
- url: /media
  static_dir: static/media

Но я хочу, чтобы это было связано с самим django, поэтому я избегал использования приведенной выше строки и, следовательно, ищу способ «django» сделать это. Структура каталогов моего проекта похожа (не завершена только соответствующий проект /myapp/static/media/css/js/images settings.py app.yaml

и образец заголовка файла шаблона:

<link type="text/css" href="/media/css/ui-lightness/jquery-ui-1.7.1.custom.css" rel="Stylesheet" /> 
<script type="text/javascript" src="/media/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="/media/js/jquery-ui-1.7.1.custom.min.js">$('#date').datepicker();</script>

в settings.py есть:

MEDIA_ROOT =  os.path.join(os.path.dirname(__file__), 'static')
MEDIA_URL ='/media/'
TEMPLATE_DIRS = (

    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(os.path.dirname(__file__), 'myapp/templates'),
    os.path.join(os.path.dirname(__file__), 'static'),
)

Я знаю, что делаю ошибку в заголовках или настройках, потому что, когда я использую абсолютный URL-адрес, например:

тогда хотя бы css работает. Существует решение сделать это с помощью app.yaml (как я уже упоминал выше), но я хотел сделать это из самого django. Любые подсказки? Спасибо


person Dhushyanth    schedule 18.06.2009    source источник
comment
stackoverflow исказил мою структуру каталогов. позвольте мне ввести это еще раз: 1. Project i.myapp ii. settings.py III. app.yaml iv.static * медиа ^css ^js   -  person Dhushyanth    schedule 18.06.2009


Ответы (2)


Я мало знаю о GAE, но я знаю Django, и способ Django сделать это не позволить Django сделать это. Ваши статические ресурсы всегда должны обслуживаться отдельно от Django, в противном случае вы без всякой причины подвергаетесь огромным нагрузкам на процессор.

То, как вы настроили его с помощью handlers выше, выглядит правильным.

person Daniel Roseman    schedule 18.06.2009
comment
djangoproject.com/documentation/0.96/static_files я нашел это... Кажется, вы был прав. Спасибо - person Dhushyanth; 18.06.2009
comment
+1. Статические обработчики в App Engine работают быстрее, чем все, что вы можете реализовать в пользовательском коде. - person Nick Johnson; 18.06.2009

Ознакомьтесь с документацией для Google App Engine здесь:

Статические обработчики файлов Вне django — лучший способ для обслуживания статических файлов, а GAE автоматически обрабатывает MIME-типы.

person Mike Johnson    schedule 30.08.2010