J'ai généré un fichier .xml de plan du site et je souhaite y revenir. J'ai placé le fichier dans mon dossier de vues et j'ai fait cette route:
Route::get('/site-map', function(){
return view('sitemap.xml');
});
Bien que je ne puisse pas le faire afficher.
Par défaut Laravel ne prend pas en charge le chargement .xml
fichiers en tant que vues. Cela étant dit, il existe plusieurs solutions à votre problème:
Le plus simple est de placer simplement votre sitemap.xml
dans le /public
répertoire. Le navigateur pourra voir le fichier à http://yourdomain.com/sitemap.xml
.
Vous pouvez charger le contenu de votre fichier et renvoyer une réponse, en définissant le Content-Type
en-tête à application/xml
ou text/xml
pour indiquer au navigateur que le fichier que vous servez est en fait un document XML.
return response(file_get_contents(resource_path('sitemap.xml')), 200, [
'Content-Type' => 'application/xml'
]);
Alternativement, vous pouvez demander au Finder de Laravel de prendre en charge le .xml
extension en faisant quelque chose comme ça dans un fournisseur de services (comme la méthode register
de votre AppServiceProvider
, située à app/Providers/AppServiceProvider.php
):
app('view.Finder')->addExtension('xml');
Une fois que vous avez fait cela, Laravel devrait reconnaître .xml
comme extension de vue valide et chargez votre fichier XML comme s'il s'agissait d'une vue. Cela a l'avantage supplémentaire de pouvoir lui transmettre des données et d'utiliser Blade/PHP dans votre vue, si vous souhaitez:
return view('sitemap');