Невозможно добавить файл sitemap.xml и маршрут в laravel 9

Я пытаюсь добавить файл sitemap.xml для веб-сайта laravel. Я использую laravel версии 9. Я пытался искать в Google и YouTube, но не смог найти решения.

Я создал файл sitemap.xml и переместил файл sitemap.xml в общедоступный каталог, а также добавил маршрут в папку/каталог маршрутов, подобный этому, в файл web.php, где определены другие маршруты:

Route::get("sitemap.xml" , function () {
return \Illuminate\Support\Facades\Redirect::to('sitemap.xml');
 });

Я также попытался добавить следующий код в папку/каталог маршрутов следующим образом:

Route::get('sitemap.xml',function() {
return response()->view('sitemap')
->header('Content-Type', 'xml');
});

Теперь открываем файл xml через url: https://www.example.com/sitemap.xml, у меня получается 500 ОШИБКА СЕРВЕРА.

Я бы сразу поместил файл в папку public и все... не нужно создавать маршрут или что-то еще сумасшедшее...

matiaslauriti 31.03.2023 01:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
145
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы не можете ссылаться на файл с вызовом метода просмотра. Поместите файл в папку хранилища, а затем используйте вызов файла для фактического обслуживания файла.

return response()->file('sitemap.xml');

Если вы хотите динамически генерировать свою карту сайта и обрабатывать ее из представления блейда, вы можете сделать это следующим образом:

Route::get('sitemap.xml', [SiteMapController::class, 'sitemap'])->name('sitemap');

Затем в SitemapController выполните динамические действия и верните представление блейда:

$models = Model::all();
return response()->view('sitemap', compact('models'))->header('Content-Type', 'text/xml');

И sitemap.blade.php в папке представлений:

<?php echo '<?xml version = "1.0" encoding = "UTF-8"?>'; ?>
<urlset xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9">
    @foreach ($models as $model)
    <url>
        <loc>{{ route('models.show', $model) }}</loc>
    </url>
    @endforeach
</urlset>

Другие вопросы по теме