1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ルートプレフィックスを設定している場合のLaravel Debugbar導入

Last updated at Posted at 2025-07-01

前提

本記事は以下が関係します。
用語等わからない場合ご確認いただけると良いと思います。

現象

Laravel Debugbarを導入する際、ルートプレフィックスを設定している場合、それをDebugbarに明示しないとDebugbar表示時に_debugbar/assets/javascriptへのアクセスで404エラーを返すはずです。

原因

この現象の原因は、Laravel Debugbarのアセット(JavaScriptやCSSなど)へのURL生成方法と、アプリケーションのルートプレフィックス設定の関係にあります。

  1. Debugbarのアセットルートはグローバルで定義されている

    • DebugbarのServiceProviderでは、アセットへのルート(例: _debugbar/assets/javascript)を**グローバル(prefixなし)**で登録しています。
    • そのため、Route::group(['prefix' => '/your_prefix'], ... ) でアプリのルートにプレフィックスが付いていても、Debugbar自身のルートには自動的にプレフィックスは付与されません。
  2. Debugbarのリンク生成もprefixなしで行われる

    • DebugbarがHTML内に出力するリンクも、/_debugbar/assets/javascript?...のようにprefixなしで生成されます。
  3. ルーティングとURLの不一致

    • アプリの全体にprefixがある場合、/your_prefix/_debugbar/assets/javascript?... でアクセスする必要がありますが、Debugbarは/_debugbar/assets/javascript?...でリンクを作り、404になります。これは単にlaravelのルーティングエラーです。Webサーバーのファイルにアクセスできないエラーではありません。

解決方法

この問題を解決するには、config/debugbar.phproute_prefix設定を変更する必要があります。
Debugbarにルートプレフィックスの存在を教えてあげるということですね。

  1. Debugbarの設定ファイルを公開

    php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"
    
  2. 生成されたconfig/debugbar.phpの、route_prefixの設定を探します。

    'route_prefix' => '_debugbar',
    
  3. アプリケーションのプレフィックスを追加

    'route_prefix' => 'your_prefix/_debugbar',
    
    // 動的にする場合はこんな風にできます。
    $key = explode('/', request()->path())[0];
    
    return [
        // 他の設定は省略
        'route_prefix' => $key . '/_debugbar',
    ];
    

この設定により、DebugbarのアセットURLがアプリケーションのプレフィックスを考慮して生成されるようになります。

まとめ

  • 原因はDebugbarのルート登録・リンク生成にアプリのprefixが考慮されていないこと
  • WebサーバーではなくLaravelアプリ側のルーティングとURL生成の問題
  • 解決策はconfig/debugbar.phproute_prefix設定を変更すること
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?