首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spatie Laravel站点地图生成的xml文件为空

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

Stack Overflow用户
提问于 2019-01-07 20:11:53
回答 3查看 3.1K关注 0票数 9

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

我安装了运行Composer命令的包

代码语言:javascript
复制
composer require spatie/laravel-sitemap

然后我出版了作曲家。

代码语言:javascript
复制
php artisan vendor:publish --provider="Spatie\Sitemap\SitemapServiceProvider" --tag=config

在routes/web.php中,我添加了以下内容。

代码语言:javascript
复制
Route::get('sitemap', function () {
    SitemapGenerator::create('http://app.localhost/')->writeToFile('sitemap.xml');
    return "Sitemap generated".
});

当我运行代码并生成sitemap.xml时。当我打开sitemap.xml时,这就是我在里面找到的所有东西。

代码语言:javascript
复制
<?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中有很多路由。哪里出了问题,如何修复它?

EN

回答 3

Stack Overflow用户

发布于 2019-04-10 22:24:00

您可以像下面这样手动添加其他urls,当您运行它时,这些链接将被添加到您的站点地图文件中:

代码语言:javascript
复制
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";
});
票数 2
EN

Stack Overflow用户

发布于 2020-07-21 19:26:48

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

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

例如,我补充道:https://example.com/和boom it起作用了。

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

票数 1
EN

Stack Overflow用户

发布于 2020-03-28 03:37:05

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

代码语言:javascript
复制
<?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进行测试。

代码语言:javascript
复制
SitemapGenerator::create("https://spatie.be/en")
            ->writeToFile(public_path('sitemap.xml'));

如果它工作得很好,那么我相信它也会在服务器上工作。在我的情况下,它在服务器上工作,而它与您在我的本地上的结果相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54074213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档