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

Laravel8+Vue3+InertiaJS配置Ziggy后@routes指令不识别问题

Ziggy @routes指令不解析排查方案
  • 先确认你的入口视图文件后缀确实是app.blade.php,只有带.blade.php后缀的文件Laravel才会解析Blade指令,如果你误删了.blade后缀,所有指令都会被当作普通字符串输出。
  • 清理所有Laravel缓存,依次执行以下命令:
    php artisan view:clear
    php artisan optimize:clear
    composer dump-autoload
    
    旧的视图编译缓存、服务缓存都会导致新安装的Ziggy包的Blade指令不生效。
  • 手动注册Ziggy服务提供者:打开config/app.php,找到providers数组,在末尾添加一行:
    Tightenco\Ziggy\ZiggyServiceProvider::class,
    
    虽然Laravel8支持包自动发现,部分环境下自动发现可能失效,手动注册可以解决这个问题。
  • 临时替换指令测试:将app.blade.php里的@routes直接替换为等效的原生PHP代码:
    <?php echo app('Tightenco\Ziggy\BladeRouteGenerator')->generate(); ?>
    
    访问页面查看源码,如果能正常输出路由相关的JS代码,就可以确认是Ziggy的Blade指令注册问题,执行完前面的缓存清理和手动注册步骤后就可以换回@routes。
  • 额外注意你当前app.js里的代码bug:你重写的全局$route方法没有加返回值,调用时会返回undefined,需要修改为:
    app.config.globalProperties.$route = (a, b = {}) => {
        const token = new URLSearchParams(window.location.search).get('t');
        b["t"] = token;
        return route(a, b);
    };
    

内容的提问来源于stack exchange,提问作者bonbon.langes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:51:04