サイトマップの.xmlファイルを生成しましたが、戻りたいです。私は自分のviewsフォルダにファイルを置き、このルートを作りました:
Route::get('/site-map', function(){
return view('sitemap.xml');
});
表示させることができません。
デフォルトでは、Laravelは_.xml
_ファイルをビューとしてロードすることをサポートしていません。とはいえ、問題にはいくつかの解決策があります:
最も簡単な方法は、_sitemap.xml
_を_/public
_ディレクトリに配置することです。ブラウザは_http://yourdomain.com/sitemap.xml
_でファイルを表示できます。
ファイルのコンテンツをロードしてレスポンスを返し、_Content-Type
_ヘッダーを_application/xml
_または_text/xml
_に設定して、提供しているファイルが実際にはXMLドキュメントであることをブラウザーに伝えることができます。
_return response(file_get_contents(resource_path('sitemap.xml')), 200, [
'Content-Type' => 'application/xml'
]);
_
または、Laravelのビューファインダーに_.xml
_拡張をサポートするように指示することもできます(サービスプロバイダー(register
のAppServiceProvider
メソッドなど、_app/Providers/AppServiceProvider.php
_):
_app('view.Finder')->addExtension('xml');
_
これを実行すると、Laravelは_.xml
_を有効なビュー拡張として認識し、XMLファイルをビューであるかのようにロードする必要があります。これには、データを渡して、ビュー内でBlade/PHPを使用します。
_return view('sitemap');
_