Ошибка отображения SVG в разных браузерах - PullRequest
2 голосов
/ 03 января 2011

На моем сервере я сделал удаленное преобразование XSLT в php следующим образом:

$command = $java . $saxon . $target2 . ' ' . $xsl2.' '.$param;

passthru($command, $result);

$ target2 - это входной SVG-файл, а $ xsl2 - это таблица стилей, saxon - это файл saxon8.jar, и я протестировал его с несколькими браузерами.

В Google Chrome все работало отлично, график SVG отображался правильно.

Однако я попытался сделать то же самое в Firefox (который должен поддерживать график SVG), график SVG не отображался, а отображался только фактический код для графика SVG. Я использовал «источник просмотра», чтобы проверить первые и последние несколько строк сгенерированного SVG в Firefox, и он читал:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<!--  Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build  14948)  --> 
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0"  
 .......
</svg>

Я пытался использовать FireBug для отладки, и там показаны теги html и теги head и body. Это говорит о том, что я испортил SVG с HTML-материалом?

Я застрял здесь, спасибо заранее за помощь ваших парней!

Ответы [ 2 ]

1 голос
/ 06 января 2011

Решением этой проблемы является добавление заголовочного файла типа контента, например:

header("Content-type: image/svg+xml");

, добавьте его в начало файла php, и все должно работать оттуда.

0 голосов
/ 17 июня 2014

Ответ Кевина хорошо работает в PHP, но он может быть достигнут без помощи PHP уже на стороне сервера до того, как включится интерпретатор PHP.
Здесь приведен пример использования httpd.conf / .htaccess в Apache, взятый из HTML5BoilerPlate Шаблон Apache HTTP-сервера .

# ------------------------------------------------------------------------------
# | Proper MIME types for all files                                            |
# ------------------------------------------------------------------------------

# Extension may be specified w or w/o leading dot
# http://httpd.apache.org/docs/current/mod/directive-dict.html#Syntax

<IfModule mod_mime.c>
  # SVG
  #   Required for svg webfonts on iPad
  #   twitter.com/FontSquirrel/status/14855840545
  AddType image/svg+xml                       svg svgz
  AddEncoding gzip                            svgz
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...