直接安装spatie/laravel-sitemap即可,无需所谓“Laravel Sitemap_Composer”;v7要求Laravel 10+和PHP 8.1+,否则需降级至v6;必须执行vendor:publish发布配置,否则报错;生成sitemap后需检查robots.txt是否包含Sitemap声明及APP_URL协议是否正确。
直接装就行,不需要单独“安装 Laravel Sitemap_Composer”——后者根本不是官方包名,搜不到、装不上,纯属误导。
确认 Laravel 版本和 PHP 版本是否兼容
这个包对环境有硬性要求:
v7(当前最新稳定版)只支持 Laravel 10+ 和 PHP 8.1+;如果你用的是 Laravel 9 或 PHP 8.0,得降级到 v6。
查 Laravel 版本:
查 PHP 版本:
Laravel 9 + PHP 8.0 → 装
Laravel 10+ + PHP 8.1+ → 装
(自动拉 v7)
发布配置并检查
是否生成
装完不发布配置,后续生成 XML 时会报
或路径找不到——因为默认配置没落地,Laravel 找不到生成规则。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
运行:
检查项目根目录下是否出现
重点看
:开启后,
只在缓存失效时重生成,适合生产;开发调试建议先设为
手动生成 XML 的两种常用方式及坑点
别一上来就丢进
的调度里——本地跑不通,线上也容易超时或漏路由。
临时生成(调试用):
,默认输出到
自定义生成(推荐):写一个命令类或控制器方法,手动控制 URL 来源,比如只加已发布文章:
常见错误:
→ 没执行
,配置缺失导致服务提供者未正确注册
生成后访问
404?确认文件真在
下,且 Web 服务器(Nginx/Apache)没把
当作动态资源拦截
最常被跳过的其实是
里那行
。没加这句,搜索引擎根本不会主动找你的地图。还有,如果网站开了 HTTPS 但
写的是
,生成的 URL 全是错的,XML 直接无效。
spatie/laravel-sitemapspatie/laravel-sitemapphp artisan --versionphp -vcomposer require spatie/laravel-sitemap:^6.4composer require spatie/laravel-sitemapconfig/sitemap.phpClass 'Spatie\Sitemap\SitemapGenerator' not foundphp artisan vendor:publish --provider="Spatie\Sitemap\SitemapServiceProvider" --tag=configconfig/sitemap.php'cache' => truesitemap.xmlfalseKernel.phpphp artisan sitemap:generatepublic/sitemap.xml$sitemap = SitemapGenerator::create('https://yoursite.com')
->hasCrawled(function (Url $url) {
return $url->segment(1) === 'blog' && $url->segment(2) !== 'draft';
})
->writeToFile(public_path('sitemap.xml'));Call to undefined method Spatie\Sitemap\SitemapGenerator::create()vendor:publish/sitemap.xmlpublic/.xmlrobots.txtSitemap: /sitemap.xmlAPP_URLhttp://