2013-11-24 1 views
4

Я пытаюсь сжать мои файлы css и js и служить в качестве файла gzip, но без успеха.django css и js files gzip compression on heroku

Я перепробовал все методы, Джанго-трубопроводов, Джанго-компрессорные и т.д.

я получил Джанго-компрессор для создания файлов GZIP, но я не знаю, как служить им. Я использую GzipMiddleaware для сжатия и обслуживания моих html-файлов.

Можно ли, пожалуйста, написать пошаговое руководство о том, как gzip и обслуживать статические файлы на heroku django.

Извините, что попросил подробные шаги, я не прошу, чтобы меня кормили ложкой, но я пробовал эту проблему почти 24 часа, пробовал n количество решений, но никто, похоже, не работает.

FYI, я использую Джанго-1.5

Спасибо заранее за вашу помощь

+0

Что вы используете для обслуживания ваших статических файлов? вы подталкиваете их к s3 или обслуживаете их через django? – Thomas

+0

@Thomas Я обслуживаю статические файлы через django и обслуживаю файлы мультимедиа через s3. – kumar

ответ

2

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

Вот некоторые веские причины для использования s3 для staticfiles. http://blog.doismellburning.co.uk/2012/07/14/using-amazon-s3-to-host-your-django-static-files/

Вот статья объясняет, как получить S3 служить сжат GZIP ресурсы: http://www.jamiebegin.com/serving-compressed-gzipped-static-files-from-amazon-s3-or-cloudfront/

Вот бэкенд хранения, которая будет collectstatic к s3.

Возможно, вы могли бы легко написать бэкэнд памяти, который gzips и загрузите в s3 путем подклассов этого бэкэнд и бэкэнда django-компрессора.

+0

благодарит за вашу помощь. Но немногие мои пользователи получают доступ к моему сайту за брандмауэром, который блокирует амазонку s3. Чтобы обеспечить базовую работу сайта для всей аудитории, я решил не использовать aws для статического контента. Можете ли вы помочь в обслуживании составленных статических файлов через django. – kumar

+2

Уверяю вас, gzipping ваши статические файлы не окажут заметного влияния на ваши времена pageload.Узким местом является то, что вы обслуживаете статические файлы с вашего сервера приложений, без кэширования или etags, за загрузчиком, который не может кэшировать его. Если вы хотите стрелять себе в ногу ради пары «немногих» пользователей с запаздывшими брандмауэрами, штраф; но я не покажу вам, где находится пистолет. – Thomas

+0

Томас благодарен за ваши идеи. Я не мог согласиться больше, но несколько пользователей оказались очень важными посетителями моего сайта, чтобы их игнорировать. Позвольте мне попытаться найти лучшую альтернативу либо CDN, доступную везде. Спасибо за вашу помощь. Любой с другими мыслями, пожалуйста. – kumar

0

У меня была такая же проблема. Я использовал grunt, но обнаружил, что было много дополнительных конфигураций и т. Д. И т. Д., И затем я нашел django-compressor, который является УДИВИТЕЛЬНЫМ!

Но я развертываю в Heroku, который ничего не делает gzip и полагается на приложение, чтобы это сделать.

Я не смог найти какую-либо wsgi-оболочку, которая служила предварительно сжатым gzip-файлам, поэтому я расширил dj-static, чтобы сделать это для меня. Проверьте свою вилку dj-static, которая включает дополнения. В основном он будет проверять соответствующее статическое имя файла, которое заканчивается на .gz, и если он его найдет, он будет служить ему вместо этого. Я использую это для своих проектов Heroku.

https://github.com/hdickson/dj-static

Чтобы проверить на вашем Dev сервере при запуске Джанго встроенный веб-сервер быть уверены, чтобы запустить его с помощью переключателя --nostatic командной строки. т.е. python manage.py runningerver 0.0.0.0:80 --nostatic