PHP
JavaScript
Laravel

Laravel のURLに対するアクセスで動的な JavaScript を返す

ルートに対するアクセス時にセッション等を利用してユーザーを判別し、

ユーザーごとに異なるJavaScriptを返すというのを試してみたので、その際の関連メモです。


resources/views/dynamic/script.blade.php

// BladeテンプレートにそのままJavaScriptを記述してます

(function(){
window.App = {
env: '{{ config('app.env') }}'
}
})()


routes/web.php

Route::prefix('dynamic')->group(function () {

Route::get('my-script.js', function () {
return response()->view('dynamic/script', [], 200, [
'Content-Type' => 'application/javascript; charset=UTF-8',
]);
});
});

<script src="/dynamic/my-script.js"></script>

Content-Type を指定するために、

ヘルパー関数の response() が返す ResponseFactory の、 view() というメソッドを利用しています。

(参考: Illuminate\Contracts\Routing\ResponseFactory | Laravel API)


試したはいいけど出番は無かったです。:wink: