Spatie Laravel网站地图生成的xml文件为空

时间:2019-01-07 12:11:53

标签: laravel sitemap

我正在开发Laravel应用程序。现在,我正在尝试使用此软件包https://github.com/spatie/laravel-sitemap为我的网站实施站点地图。但是当我生成sitemap.xml时,文件中没有路径。

我安装了运行Composer命令的软件包

composer require spatie/laravel-sitemap

然后我发布了作曲家。

php artisan vendor:publish --provider="Spatie\Sitemap\SitemapServiceProvider" --tag=config

在routes / web.php中,我添加了它。

Route::get('sitemap', function () {
    SitemapGenerator::create('http://app.localhost/')->writeToFile('sitemap.xml');
    return "Sitemap generated".
});

运行代码时,将生成sitemap.xml。当我打开sitemap.xml时,便可以在其中找到所有内容。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
</urlset>

我在web.php中有很多路由。有什么问题,如何解决?

3 个答案:

答案 0 :(得分:0)

您可以手动添加其他网址,如下所示,当您运行它时,链接将添加到您的站点地图文件中:

use Spatie\Sitemap\SitemapGenerator;
use Spatie\Sitemap\Tags\Url;

 Route::get('sitemap', function () {
    SitemapGenerator::create('https://vesicash.com/')->getSitemap()
    ->add(Url::create('/link1')->setPriority(0.5))
    ->add(Url::create('/link2')->setPriority(0.5))
    ->add(Url::create('/link3')->setPriority(0.5))
    ->add(Url::create('/privacy')->setPriority(0.5))
    ->writeToFile('sitemap.xml');
    return "Sitemap Generated";
});

答案 1 :(得分:0)

当我第一次做的时候,对我来说看起来一样。

IndexError: list assignment index out of range

我认为您是在本地PC上完成的。

因此,首先,您可以使用此URL进行测试。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
</urlset>

如果运行良好,那么我相信它也可以在服务器上运行。 就我而言,它可以在服务器上运行,而与您在本地服务器上的结果相同。

答案 2 :(得分:0)

这是我解决此问题的方法:

我只是确保在 .env 文件中正确设置了APP_URL

例如,我添加了https://example.com/并使其繁荣。

这也应该在您的本地PC上工作。