You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9使用laravel-sitemap报错:No hint path defined for [sitemap]

问题:Laravel部署后生成站点地图报错“No hint path defined for [sitemap]”

本地环境使用laravel-sitemap扩展生成sitemap.xml正常,但部署到远程虚拟主机时,出现错误提示:No hint path defined for [sitemap]。

相关代码:

控制器代码

<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Spatie\Sitemap\Sitemap;
use Spatie\Sitemap\Tags\Url;
use App\Models\Post;


class SiteMapController extends Controller
{
    /**
     * generates the sitemap xml file
     */
    public function generate()
    {
        $sitemap = Sitemap::create();
       
        $post = Post::all();
        foreach ($post as $post) {
            $sitemap->add(Url::create("/post/{$post->slug}"));
        }
        $sitemap->writeToFile(public_path('sitemap.xml'));

        return redirect()->route('admin.dashboard')->withSuccess(__('sitemap.updated'));

    }
}

路由代码

Route::get('generate-sitemap', 'SiteMapController@generate');

解决方案

该错误与laravel-sitemap扩展本身无关,是Laravel本地化翻译系统的问题,根源是__('sitemap.updated')这个翻译调用找不到对应的翻译文件或路径。

1. 检查翻译文件结构

确保项目resources/lang目录下存在对应语言的翻译文件:

  • 比如使用中文的话,需要创建resources/lang/zh/sitemap.php(或zh_CN,取决于你的Locale设置),文件内容示例:
<?php

return [
    'updated' => '站点地图已成功更新',
];

2. 确认翻译文件已部署到远程主机

部署时容易忽略resources/lang目录下的文件,登录远程主机检查对应路径是否存在sitemap.php文件,若缺失则上传该文件。

3. 验证Locale配置

检查项目根目录的.env文件,确认APP_LOCALE的值和你的翻译文件目录匹配,比如:

APP_LOCALE=zh

4. 临时替代方案(快速解决)

如果不想处理翻译系统的问题,可以直接将翻译函数替换为字符串:
把控制器中的:

return redirect()->route('admin.dashboard')->withSuccess(__('sitemap.updated'));

修改为:

return redirect()->route('admin.dashboard')->withSuccess('站点地图已成功更新');

内容的提问来源于stack exchange,提问作者Mahdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 08:25:01