2015-09-13 11 views
1

Je voudrais savoir comment rendre et servir un fichier svg en utilisant Express.rendre le fichier svg et le servir en utilisant express

En ce moment, je peux servir un svg en tant que fichier XML brut. Voici ce que je fais:

itinéraire

router.get('/status', function (req, res, next) { 
    res.setHeader('Content-Type', 'image/svg+xml'); 
    res.sendFile(path.join(__dirname, '../views/status.svg')); 
}); 

svg

<svg width="400" height="180"> 
    <rect x="50" y="20" rx="20" ry="20" width="150" height="150" style="fill:red;stroke: black;stroke-width:5;opacity:0.5" /> 
</svg> 

Quand je frappe cette route, le XML brut du fichier svg est servi au navigateur. Comment puis-je le rendre d'abord en tant qu'image SVG, puis le servir?

+4

Vous ne le rend pas d'abord, le navigateur rend. –

Répondre

4

Modifier votre fichier SVG dans ce

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="400" height="180"> 
    <rect x="50" y="20" rx="20" ry="20" width="150" height="150" style="fill:red;stroke: black;stroke-width:5;opacity:0.5" /> 
</svg> 
+3

Pour expliquer: Ces attributs (xmlns) définissent des espaces de noms et le navigateur a besoin de ceux-ci pour reconnaître que le balisage est SVG, et pas un autre élément svg d'une autre spécification aussi improbable que cela puisse être. –