Laravel 開発環境と本番環境でblade表示を切り替えたいときの設定

  • URLをコピーしました!

Google Analytics のタグを設定するときなど、開発環境では表示したくなくて、本番環境では表示したいという場合の設定は以下のような方法があります。

目次

@includeWhen@includeUnlessを使用する

includeWhenとincludeUnless は、第1引数が判定用のbooleanとなっていて、includeWhenは true のときだけ、 includeUnless は false のときだけ表示する仕組みです。

@includeWhen($boolean, 'view.name', ['status' => 'complete'])
@includeUnless($boolean, 'view.name', ['status' => 'complete'])

例えば、 env の値を config 経由で参照することで、開発環境と本番環境を分けて表示することができます。
ここでは、Google Analytics を gtag.blade.php にまとめています。
app.debug = false のときに表示されます。

@includeUnless(config('app.debug'), 'gtag')
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-xxxxxxxxxxx"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-xxxxxxxxxxx');
</script>

2. if 文を使う

先ほどのやり方だと、呼び出すときにいちいち判定処理を記載する必要があります。
それだとめんどうなので、呼び出された側で判定してしまうという方法もあります。

@include('gtag')
@if(!config('app.debug'))
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-xxxxxxxxxxx"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-xxxxxxxxxxx');
</script>
@endif

ツチノコテクノロジーでは一緒に働く仲間を募集しています!

完全リモートで働きたい方へ!

詳しくは以下をご覧ください。

ツチノコテクノロジー採用サイト

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ツチノコテックアカデミアの記事は、社内で誰かが質問してくれたことに回答したときに、ついでに記載しています!(^^)/
みんなの悩みを共有すれば、きっと誰かの役に立つと信じて更新しています!

目次