2011-01-03 9 views
2

は、私はこのようなPHPのリモートXSLTの形質転換のをしました:SVG表示バグ

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

passthru($command, $result); 

$のTARGET2が入力SVGファイルで、$ xsl2はスタイルシートで、サクソンはsaxon8です.jarファイルであり、私はいくつかの仲間とそれをテストしました。

Google Chromeでは、すべて正常に動作し、SVGグラフが正しく表示されました。

しかし、Firefox(SVGグラフをサポートするはずです)でも同じことをやろうとしましたが、SVGグラフは表示されませんでしたが、SVGグラフの実際のコードだけが表示されました。私はFirefoxで生成されたSVGの最初と最後の数行をチェックアウトする「viewsource」を使用し、それを読む:

<?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> 

私はデバッグに放火犯を使用してみました、そしてhtmlタグと示さheadbodyタグがあります私はSVGをHTMLのもので台無しにしていると言っていますか?

私はちょっとここに詰まっています。あなたの助けを借りてくれてありがとう!

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

は、PHPファイルの先頭に追加し、すべてがそこから作業する必要があります

+2

Firebugでレスポンスボディとコンテンツタイプヘッダ(!)を見ると、何が表示されますか? – Tomalak

+0

@Tomalak:ありがとう、私はこの問題が修正された、私はヘッダーファイルが不足していた。 – Kevin

+0

あなたの解決策を回答として記入し、それを受け入れてください。これはあなたの質問を削除するだけでなく、このサイトの他のユーザーにとってははるかに便利です! –

答えて

1

この問題を解決するには、次のようにコンテンツタイプヘッダファイルを追加することです。 HTML5BoilerPlateのApache HTTP server boilerplateから取られたApacheのhttpd.conf/.htaccess上の例として、ここで

0

ケビンの答えはPHPでうまく動作しますが、それはでPHPインタプリタキックの前に、サーバー側ですでにPHPの助けなしに達成することができた。

# ------------------------------------------------------------------------------ 
# | 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> 
関連する問題