{% media %} » комментарииhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/2011-02-20T05:06:24.690217-08:00Иван Сагалаев о программировании и веб-разработкеhttp://softwaremaniacs.org/media/sm_org/style/photo.jpgqbuben на "{% media %}"
2011-02-20T05:06:24.690217-08:00qbubenhttp://softwaremaniacs.org/forum/django/29050/https://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-73460http://softwaremaniacs.org/blog/2009/03/22/media-tag/
<p><a href="http://softwaremaniacs.org/blog/2009/03/22/media-tag/">http://softwaremaniacs.org/blog/2009/03/22/media-tag/</a>oleg.vodopyan на "{% media %}"
2011-02-14T18:14:40.696981-08:00oleg.vodopyanhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-72871полезный материал.. буду использовать) типа вопрос возник только по последних комментариях по поводу return 'http://%s%s' % (domain, url) А абсолютные URL'ы нужны, когда вы генерируете что-то, что будет показываться >или на другом сайте или в отосланном email'е. И вот там нужен целиковый http://..., потому что протокол у другого сайта может...
<p>полезный материал.. буду использовать)</p>
<p>типа вопрос возник только по последних комментариях по поводу return '<a href="http://%s%s'">http://%s%s'</a> % (domain, url)</p>
<blockquote>
<p>А абсолютные URL'ы нужны, когда вы генерируете что-то, что будет показываться >или на другом сайте или в отосланном email'е. И вот там нужен целиковый
<a href="http://..">http://..</a>., потому что протокол у другого сайта может быть не >таким, как у вашего, а в email его вообще нет.</p>
</blockquote>
<p>если я правильно понял то ситуация с медиа на другом сайте определяется кодом</p>
<pre><code>if url.startswith('http://') or url.startswith('https://'):
return url
</code></pre>
<p>а строки</p>
<pre><code>domain = Site.objects.get_current().domain
return 'http://%s%s' % (domain, url)
</code></pre>
<p>это </p>
<blockquote>
<p>случай, когда я генерирую страницу сайта и хочу составить URL на картинку, лежащую здесь же. И тут, на самом деле и хоста даже не нужно, достаточно просто /media/path/filename.jpg.</p>
</blockquote>
<p>то есть можно return '<a href="http://%s%s'">http://%s%s'</a> % (domain, url) заменить на
return '//%s%s' % (domain, url)?..livskiy на "{% media %}"
2010-11-09T06:00:51.564420-08:00livskiyhttp://softwaremaniacs.org/forum/django/26029/https://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-60730Добрый вечер.Очень понравился топик по теме http://softwaremaniacs.org/blog/2009/03/22/media-tag/. Хотелось бы узнать, можно ли вместо timestamp'a как альтернативу использовать svn info о версии из рабочей копии на прод. сервере, и какие у этого подхода есть + и -. Спасибо.
<p>Добрый вечер.Очень понравился топик по теме <a href="http://softwaremaniacs.org/blog/2009/03/22/media-tag/">http://softwaremaniacs.org/blog/2009/03/22/media-tag/</a>. Хотелось бы узнать, можно ли вместо timestamp'a как альтернативу использовать svn info о версии из рабочей копии на прод. сервере, и какие у этого подхода есть + и -. Спасибо.mozart на "{% media %}"
2010-05-25T08:13:38.419090-07:00mozarthttp://softwaremaniacs.org/forum/django/22139/https://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-45817http://softwaremaniacs.org/blog/2009/03/22/media-tag/Как раз то что мне надо.Обьясните пожалуйста как его установить.Создал в папке с приложением папку templatetags закинул туда init.py,contex.py.Закинул в contex код, вначале написал:from django import templateimport urlparse,os,settingsregister = template.Library()Но таг не работает.
<p><a href="http://softwaremaniacs.org/blog/2009/03/22/media-tag/Как">http://softwaremaniacs.org/blog/2009/03/22/media-tag/Как</a> раз то что мне надо.Обьясните пожалуйста как его установить.Создал в папке с приложением папку templatetags закинул туда <strong>init</strong>.py,contex.py.Закинул в contex код, вначале написал:from django import templateimport urlparse,os,settingsregister = template.Library()Но таг не работает.handler500 и RequestContext на "{% media %}"
2009-12-24T11:48:51-08:00handler500 и RequestContexthttp://softwaremaniacs.org/forum/django/17711/https://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-34576[...] в итоге именно для этого написал тег {% media %}, чтобы не таскать за собой контекст процессоры только [...]
<p>[...] в итоге именно для этого написал тег {% media %}, чтобы не таскать за собой контекст процессоры только [...]Ivan Sagalaev на "{% media %}"
2009-11-21T09:38:09-08:00Ivan Sagalaevhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-34186Решается. Достаточно заменить Недостаточно, к сожалению. Схемоотносительные URL'ы будут работать только на страницах того же сайта, на котором формируются. То есть это случай, когда я генерирую страницу сайта и хочу составить URL на картинку, лежащую здесь же. И тут, на самом деле и хоста даже не нужно, достаточно просто /media/path/filename.jpg....
<blockquote>
<p>Решается. Достаточно заменить</p>
</blockquote>
<p>Недостаточно, к сожалению. Схемоотносительные URL'ы будут работать только на страницах того же сайта, на котором формируются. То есть это случай, когда я генерирую страницу сайта и хочу составить URL на картинку, лежащую здесь же. И тут, на самом деле и хоста даже не нужно, достаточно просто <code>/media/path/filename.jpg</code>.</p>
<p>А абсолютные URL'ы нужны, когда вы генерируете что-то, что будет показываться или на другом сайте или в отосланном email'е. И вот там нужен целиковый <code>[http://..](http://..).</code>, потому что протокол у другого сайта может быть не таким, как у вашего, а в email его вообще нет.Alex Tracer на "{% media %}"
2009-11-17T19:27:02-08:00Alex Tracerhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-34162а если возвращать нужно https Там выше в комментариях есть про это. Пока красиво это не решается. Решается. Достаточно заменить return 'http://%s%s' % (domain, url) на return '//%s%s' % (domain, url) Хоть урлы с двумя слешами вначале и выглядят странно, но работает всё отлично: на http:// страницах будет подразумеваться http://,...
<blockquote>
<blockquote>
<p>а если возвращать нужно https</p>
</blockquote>
<p>Там выше в комментариях есть про это. Пока красиво это не решается.</p>
</blockquote>
<p>Решается. Достаточно заменить</p>
<pre><code>return 'http://%s%s' % (domain, url)
</code></pre>
<p>на</p>
<pre><code>return '//%s%s' % (domain, url)
</code></pre>
<p>Хоть урлы с двумя слешами вначале и выглядят странно, но работает всё отлично: на <a href="http://">http://</a> страницах будет подразумеваться <a href="http://">http://</a>, а <a href="https://">https://</a> - <a href="https://">https://</a>Подключение CSS,JS и др. в шаблоне на "{% media %}"
2009-10-03T00:52:51-07:00Подключение CSS,JS и др. в шаблонеhttp://softwaremaniacs.org/forum/django/15069/https://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-33838[...] к теме топика могу порекомендовать свой тег {% media %}. Он как раз появился из нежелания везде следить за [...]
<p>[...] к теме топика могу порекомендовать свой тег {% media %}. Он как раз появился из нежелания везде следить за [...]redbaron на "{% media %}"
2009-05-03T22:54:45-07:00redbaronhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-33160Хм. Не отменяя достоинств тега {% media %} хочу сказать, что у меня в 404.html ссылки вида "{{ MEDIA_URL }}css/base.css" работают на ура.
<p>Хм. Не отменяя достоинств тега {% media %} хочу сказать, что у меня в 404.html ссылки вида "{{ MEDIA_URL }}css/base.css" работают на ура.ramusus.livejournal.com на "{% media %}"
2009-04-20T06:07:40-07:00ramusus.livejournal.comhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-33075Подскажите плз, как исправить проблему: я положил код с тагом media в файл project/templatetags/media.py добавил в начало from django import template register = template.Library() при рендеринге шаблона отобразилась ошибка Caught an exception while rendering: global name 'urlparse' is not defined после подключения from urlparse import urljoin вывелась Caught an exception...
<p>Подскажите плз, как исправить проблему: я положил код с тагом media в файл project/templatetags/media.py</p>
<p>добавил в начало</p>
<pre><code>from django import template
register = template.Library()
</code></pre>
<p>при рендеринге шаблона отобразилась ошибка</p>
<pre><code>Caught an exception while rendering: global name 'urlparse' is not defined
</code></pre>
<p>после подключения</p>
<pre><code>from urlparse import urljoin
</code></pre>
<p>вывелась</p>
<pre><code>Caught an exception while rendering: global name 'settings' is not defined
</code></pre>
<p>Почему в кастомных тагах могут быть не видны эти модули?Тег {% media %} на "{% media %}"
2009-04-12T09:37:19-07:00Тег {% media %}http://softwaremaniacs.org/forum/django/10745/https://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-33027[...] статью про тег {% media %}. Идея очень понравилась, но не понял, для [...]
<p>[...] статью про тег {% media %}. Идея очень понравилась, но не понял, для [...]Дмитрий Курилов на "{% media %}"
2009-04-10T22:36:46-07:00Дмитрий Куриловhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-33013Вопрос А зачем вообще нужна асолютизация или какие-то другие преобразования MEDIA_URL? Почему не оставить его как есть? MEDIA_URL = 'https://static.example.com/' # or MEDIA_URL = 'http://static.example.com/' # or just MEDIA_URL = '/media/' Предложение Расширить тег на предмет custom'ного вывода timestamp'а файла. Например, так: {% media "images/edit.png" %} --> {{ MEDIA_URL }}images/edit.png?1234567890...
<p>Вопрос</p>
<p>А зачем вообще нужна асолютизация или какие-то другие преобразования MEDIA_URL? Почему не оставить его как есть?</p>
<pre><code>MEDIA_URL = 'https://static.example.com/'
# or
MEDIA_URL = 'http://static.example.com/'
# or just
MEDIA_URL = '/media/'
</code></pre>
<p>Предложение</p>
<p>Расширить тег на предмет custom'ного вывода timestamp'а файла. Например, так:</p>
<pre><code>{% media "images/edit.png" %} -->
{{ MEDIA_URL }}images/edit.png?1234567890
{% media "images/edit.png{?%s}" %} -->
{{ MEDIA_URL }}images/edit.png?1234567890
{% media "images/edit{_v%s}.png" %} -->
{{ MEDIA_URL }}images/edit_v1234567890.png
{% media "images/edit{{_v%s}.png" %} -->
{{ MEDIA_URL }}images/edit{_v%s.png?1234567890
</code></pre>Linkdump #11 | CTAPbIu_MABP's BLOG на "{% media %}"
2009-03-27T10:29:22-07:00Linkdump #11 | CTAPbIu_MABP's BLOGhttp://mabp.kiev.ua/2009/03/22/linkdump-11/https://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-32886[...] {% media %} а было бы неплохо выучит Python [...]
<p>[...] {% media %} а было бы неплохо выучит Python [...]u960 на "{% media %}"
2009-03-26T03:28:31-07:00u960https://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-32868а если возвращать нужно https Там выше в комментариях есть про это. Пока красиво это не решается. то есть это нужно сделать либо return 'http://', либо return 'https://'? или все намного сложнее?
<blockquote>
<p>а если возвращать нужно https</p>
<blockquote>
<p>Там выше в комментариях есть про это. Пока красиво это не решается.</p>
</blockquote>
</blockquote>
<p>то есть это нужно сделать либо return '<a href="http://'">http://'</a>, либо return '<a href="https://'">https://'</a>? или все намного сложнее?Иван Сагалаев на "{% media %}"
2009-03-25T01:07:39-07:00Иван Сагалаевhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-32863Для этого есть флажок "no-timestamp".
<p>Для этого есть флажок "no-timestamp".Vitaliy на "{% media %}"
2009-03-25T00:36:30-07:00Vitaliyhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-32862Больше того, для css- и js-файлов это включено автоматически. еще было-бы клева иметь возможность отключить эту автоматику (например в settings)
<blockquote>
<p>Больше того, для css- и js-файлов это включено автоматически.</p>
</blockquote>
<p>еще было-бы клева иметь возможность отключить эту автоматику (например в settings)Иван Сагалаев на "{% media %}"
2009-03-23T04:17:03-07:00Иван Сагалаевhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-32852а если возвращать нужно https Там выше в комментариях есть про это. Пока красиво это не решается.
<blockquote>
<p>а если возвращать нужно https</p>
</blockquote>
<p>Там выше в комментариях есть про это. Пока красиво это не решается.Иван Сагалаев на "{% media %}"
2009-03-23T04:15:48-07:00Иван Сагалаевhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-32851Это, что, настолько часто меняется js и css? Не часто. Но это ситуация, когда одного раз достаточно :-). Достаточно выкатить небольшую фичку, которая требует наличия в CSS'е "display:none", и она начинает выглядеть очень криво у большинства людей. Как показывает практика, очень немногие при этом знают, что надо нажать Refresh, они...
<blockquote>
<p>Это, что, настолько часто меняется js и css?</p>
</blockquote>
<p>Не часто. Но это ситуация, когда одного раз достаточно :-). Достаточно выкатить небольшую фичку, которая требует наличия в CSS'е "display:none", и она начинает выглядеть очень криво у большинства людей. Как показывает практика, очень немногие при этом знают, что надо нажать Refresh, они просто видят сломанный сайт. Timestamp эффективно и просто решает проблему.Сергей Шепелев на "{% media %}"
2009-03-23T04:07:51-07:00Сергей Шепелевhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-32850Я понимаю смысл генерации урлов к медиа, хотя у нас с успехом используется тупой хардкод /s/style.css. Если надо поменять, все шаблоны в одном месте, греп поможет. Но я совершенно не понимаю заморочек с кешированием. Это, что, настолько часто меняется js и css? Тогда почему бы не поставить короткий expires? Статику...
<p>Я понимаю смысл генерации урлов к медиа, хотя у нас с успехом используется тупой хардкод /s/style.css. Если надо поменять, все шаблоны в одном месте, греп поможет.</p>
<p>Но я совершенно не понимаю заморочек с кешированием. Это, что, настолько часто меняется js и css? Тогда почему бы не поставить короткий expires? Статику отдавать всё равно достаточно дешево, плюс есть 304 и браузеры умеют.Руслан Кеба на "{% media %}"
2009-03-23T00:52:37-07:00Руслан Кебаhttps://softwaremaniacs.org/blog/2009/03/21/media-tag/#comment-32847Хорошее решение. спасибо. return 'http://%s%s' % (domain, url) а если возвращать нужно https?
<p>Хорошее решение. спасибо.</p>
<blockquote>
<p>return '<a href="http://%s%s'">http://%s%s'</a> % (domain, url)</p>
</blockquote>
<p>а если возвращать нужно <strong>https</strong>?