質問: '{!!storage_path("app/public/cv/' + id + '/' + fileName + '/")!!}'; ``` また、 「Not allowed to load local resource: file:///」と、上記のローカルファイルへのアクセスもできない状況です。 二つの問題が関連しているか微妙ですが、ご教授いただければ幸いです。 何卒よろしくお願い申し上げます。
回答: `app/public/`以下の**リンクURL**を取得するには`url()`を使います。`storage_path()`で得られるのは、URLではなく**ファイルパス**です。 ``` var imgUrl = '{!!url("cv/' + id + '/' + fileName + '/")!!}'; ``` なお、`storage_path`で得た文字列から`/`が消えていることについてですが、おそらく`storage_path`が返すパスの区切り文字が`/`ではなく`\`になっているからです。JavaScript上に`\`を書けば、それは**エスケープシーケンス**としてみなされ、特別な文字になります。引数部分の`/`が消えないのは`/`と明示的に書いているからです。 `storage/app/public`は`php artisan storage:link`を実行することで、`public/storage`としてシンボリックリンクが生成されます。その後は`Storage::url()`でURLが得られます。 ``` var imgUrl = '{!!Storage::url("cv/' + id + '/' + fileName + '/")!!}'; ``` ### 追記 Laravel5.1のころには`php artisan storage:link`も`Storage::url()`も存在しないようなので、以下の方法を試してみてください。(やったことないので動作は保証できません。要検証です) ``` # storage/app/publicのシンボリックリンクをpublic内に作る # Windowsの場合 mklink /d "public/storage" "storage/app/public" # Linux系の場合 ln -s storage/app/public public/storage ``` ``` var imgUrl = '{!!url("storage/cv/' + id + '/' + fileName + '/")!!}'; ```