【问题标题】:Spatie Laravel sitemap generated xml file is emptySpatie Laravel 站点地图生成的 xml 文件为空
【发布时间】:2019-01-07 12:11:52
【问题描述】:

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

我安装了运行 Composer 命令的包

composer require spatie/laravel-sitemap

然后我发布了 Composer。

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 中有很多路由。出了什么问题,如何解决?

【问题讨论】:

  • 您的主页是否包含包可抓取的链接?实际上,该包通过抓取页面中的任何包含链接来工作。它不是从路由定义中读取的。
  • 在首页,我放了一些使用锚标签的链接。但它只是不工作或爬行
  • 同样的问题,有更新吗?

标签: laravel laravel-sitemap


【解决方案1】:

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

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";
});

【讨论】:

  • 你能告诉我如何在 for 循环中添加页面。实际上我的页面是动态的。
【解决方案2】:

这就是我解决这个问题的方法:

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

我添加了,例如:https://example.com/ 并且成功了。

这也应该适用于您的本地电脑。

【讨论】:

    【解决方案3】:

    当我第一次这样做时,它对我来说看起来一样。

    <?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>
    

    我想你是在本地电脑上完成的。

    所以首先,你可以用这个 url 进行测试。

    SitemapGenerator::create("https://spatie.be/en")
                ->writeToFile(public_path('sitemap.xml'));
    

    如果它运行良好,那么我相信它也可以在服务器上运行。 在我的情况下,它在服务器上工作,而在我的本地与你的结果相同。

    【讨论】:

      猜你喜欢
      • 2020-04-09
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      • 2017-11-29
      • 2015-08-11
      • 1970-01-01
      • 2012-10-17
      相关资源
      最近更新 更多