Django, обслуживая объединенные статические файлы, вот nginx с apache прокси - PullRequest
0 голосов
/ 17 декабря 2010

Я пытался объединить статические файлы и использовать их как один файл.Но как мне поступить так, когда мой стек django находится на прокси-сервере apache с балансировкой нагрузки nginx?

в отношении Бьярни И.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2010

Вы можете попробовать django-compress . В вашем модуле настроек вы определяете группы статических файлов (js, css), которые сжимаются, хорошо сжимая в один файл на группу. Затем есть пара тегов шаблонов, которые вы используете для включения сжатых файлов в ваши шаблоны.

Например

#settings.py
COMPRESS_CSS = {
    'main': {
        'source_filenames': ('css/960gs.css', 
                             'css/main.css',
                             ),
        'output_filename': 'css/main.min.r?.css',
        'extra_context': {
            'media': 'screen,projection',
        },
    },

    # other CSS groups goes here
}

Затем где-нибудь в ваших шаблонах (скорее всего, в базовом шаблоне) вы используете {% compressed_css 'main' %}.

Вы можете определить несколько групп, если у вас есть несколько css / js, которые вы хотите включить во все страницы, но некоторые, которые вы хотите включить только в определенные страницы, или что вам нужно. Это довольно гибкий.

Вы также можете легко отключить сжатие для простой отладки.

Он также добавляет уникальный номер версии к результирующим сжатым файлам, чтобы обойти проблему кеширования браузера. Это r? часть output_filename.

0 голосов
/ 17 декабря 2010

Возможно, вы захотите взглянуть на директиву nginx try_files .Напишите в своем коде Django представление, которое будет сжимать файлы и помещать их на ваш сервер nginx (или что-то еще, к чему он может получить доступ, например, общий ресурс NFS), а затем иметь nginx try_files для версии, которая у него есть, прежде чем откатываться назад.к вашему файлообменнику Django, если файл еще не существует (в этот момент nginx будет обслуживать его в следующий раз).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...