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