Latest posts on Как показать svg файл topichttp://python.su/forum/topic/15744/2012-10-07T10:32:04+03:00Веб-технологии :: Pyramid / Pylons / TurboGears :: Как показать svg файл
2012-10-07T10:32:04+03:00doza_and94504Спасибо всем за отзывы. Точно не знаю в чем было дело. Тестировал на Windows XP.<br/>Починил тем что для HKEY_CLASSES_ROOT/.svg и .svgz" на сервера в реестре прописал ручками Content Type = image/svg+xml Сразу зараза не влияет, потребовалась перезагрузка.
Веб-технологии :: Pyramid / Pylons / TurboGears :: Как показать svg файл
2012-10-05T15:03:52+03:00Андрей Светлов94446<p>Да, у меня пример для пирамиды работает. bottle не проверял.</p>
Веб-технологии :: Pyramid / Pylons / TurboGears :: Как показать svg файл
2012-10-04T22:54:18+03:00doza_and94427Уважаемые если не трудно подскажите - мой код у вас показывает svg или нет?<br/><br/>Попробовал тоже самое на bottle - идентичное поведение - как картинку не показывает в случае embed пытается сохранить файл.<br/><br/><div class="code"><pre><span class="kn">from</span> <span class="nn">bottle</span> <span class="kn">import</span> <span class="n">route</span><span class="p">,</span> <span class="n">run</span><span class="p">,</span> <span class="n">template</span>
<span class="nd">@route</span><span class="p">(</span><span class="s">'/static/<filename:re:.*\.png>#'</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">send_image_png</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
<span class="k">return</span> <span class="n">static_file</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">root</span><span class="o">=</span><span class="s">'/static'</span><span class="p">)</span> <span class="c">#, mimetype='image/png'</span>
<span class="nd">@route</span><span class="p">(</span><span class="s">'/static/<filename:re:.*\.svg>#'</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">send_image_svg</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
<span class="k">return</span> <span class="n">static_file</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">root</span><span class="o">=</span><span class="s">'/static'</span><span class="p">,</span><span class="n">mimetype</span><span class="o">=</span><span class="s">'image/svg+xml'</span><span class="p">)</span>
<span class="nd">@route</span><span class="p">(</span><span class="s">'/'</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">index</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">'World'</span><span class="p">):</span>
<span class="k">return</span> <span class="n">template</span><span class="p">(</span><span class="s">"""</span>
<span class="s"><html></span>
<span class="s"><body></span>
<span class="s"><h1>SVG</h1></span>
<span class="s"><img src="http://localhost:6543/static/a.png" alt="sxem not found"></span>
<span class="s"><embed src="http://localhost:6543/static/a.svg" type="image/svg+xml" /></span>
<span class="s"></body></span>
<span class="s"></html></span>
<span class="s">"""</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
<span class="n">run</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="s">'localhost'</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="mi">6543</span><span class="p">)</span>
</pre></div>
Веб-технологии :: Pyramid / Pylons / TurboGears :: Как показать svg файл
2012-10-04T20:55:42+03:00doza_and94422<br/><blockquote><em>ilnur</em><br/>а зачем svg выводить через embed</blockquote>Я так вычитал <a href="http://www.w3schools.com/svg/svg_inhtml.asp">http://www.w3schools.com/svg/svg_inhtml.asp</a><br/>т.е. написано что допустимо не img а embed,object,iframe, inline, href<br/><br/>но img у меня тоже не работает. Хочу понять вообще куда рыть. Настройки сервера? может content_type неправильно установлен?<br/><br/><blockquote><em>ilnur</em><br/>может я чего-то не так делаю?</blockquote>Это зависит от цели. Если использовать embed, то можно из html управлять содержимым svg т.е. из javascript подергать и поперекрашивать объекты внутри картинки (естественно на стороне клиента). А с img будет просто статическая картинка.
Веб-технологии :: Pyramid / Pylons / TurboGears :: Как показать svg файл
2012-10-04T17:02:35+03:00ilnur94415а зачем svg выводить через embed?<br/>я через img вывожу.<br/>может я чего-то не так делаю?
Веб-технологии :: Pyramid / Pylons / TurboGears :: Как показать svg файл
2012-10-04T13:35:33+03:00Solaris94408может поможет<br/><a href="http://planetsvg.com/tools/mime.php">http://planetsvg.com/tools/mime.php</a>
Веб-технологии :: Pyramid / Pylons / TurboGears :: Как показать svg файл
2012-10-04T07:48:58+03:00doza_and94400Проблема: вместо того чтобы отобразить файл странице броузер предлагает сохранить файл svg.<br/>Аналогичный код в html работает нормально.<br/><br/>Полностью идентичный код для обычной картинки работает без проблем.<br/><br/>одинаково работает fierfox, chrom 11<br/><br/>Как это преодолеть?<br/><br/><div class="code"><pre><span class="kn">from</span> <span class="nn">wsgiref.simple_server</span> <span class="kn">import</span> <span class="n">make_server</span>
<span class="kn">from</span> <span class="nn">pyramid.config</span> <span class="kn">import</span> <span class="n">Configurator</span>
<span class="kn">from</span> <span class="nn">pyramid.response</span> <span class="kn">import</span> <span class="n">Response</span>
<span class="k">def</span> <span class="nf">hello_world</span><span class="p">(</span><span class="n">request</span><span class="p">):</span>
<span class="k">return</span> <span class="n">Response</span><span class="p">(</span><span class="s">"""</span>
<span class="s"><html></span>
<span class="s"><body></span>
<span class="s"><h1>SVG</h1></span>
<span class="s"><img src="http://localhost:6543/static/a.png" alt="sxem not found"></span>
<span class="s"><embed src="http://localhost:6543/static/a.svg" type="image/svg+xml" /></span>
<span class="s"></body></span>
<span class="s"></html></span>
<span class="s">"""</span><span class="p">)</span>
<span class="c">#<img src="static/a.png" alt="sxem not found"></span>
<span class="c">#<embed src="static/a.svg" type="image/svg+xml" /></span>
<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span>
<span class="n">config</span> <span class="o">=</span> <span class="n">Configurator</span><span class="p">()</span>
<span class="n">config</span><span class="o">.</span><span class="n">add_route</span><span class="p">(</span><span class="s">'hello'</span><span class="p">,</span> <span class="s">'/'</span><span class="p">)</span>
<span class="n">config</span><span class="o">.</span><span class="n">add_view</span><span class="p">(</span><span class="n">hello_world</span><span class="p">,</span> <span class="n">route_name</span><span class="o">=</span><span class="s">'hello'</span><span class="p">)</span>
<span class="n">config</span><span class="o">.</span><span class="n">add_static_view</span><span class="p">(</span><span class="s">'static'</span><span class="p">,</span> <span class="s">'static'</span><span class="p">,</span> <span class="n">cache_max_age</span><span class="o">=</span><span class="mi">3600</span><span class="p">)</span>
<span class="n">app</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">make_wsgi_app</span><span class="p">()</span>
<span class="n">server</span> <span class="o">=</span> <span class="n">make_server</span><span class="p">(</span><span class="s">'0.0.0.0'</span><span class="p">,</span> <span class="mi">6543</span><span class="p">,</span> <span class="n">app</span><span class="p">)</span>
<span class="n">server</span><span class="o">.</span><span class="n">serve_forever</span><span class="p">()</span>
</pre></div>