2017-10-19 4 views
1

laravelで作業するのは初めてのことですが、ファイルをどのように扱うのか分かりません。私は指示に従ってphp artisan storage:linkを使用した文書の指示に従いましたが、行っていません。私は自分のURLに自分の位置に行くことで画像を見ることさえできません。Laravel - プロダクションサーバーに読み込まれていない画像がローカルで正常に動作しています

は、ここに私のconfig/filesystemsファイルです:

<?php 

return [ 

/* 
|-------------------------------------------------------------------------- 
| Default Filesystem Disk 
|-------------------------------------------------------------------------- 
| 
| Here you may specify the default filesystem disk that should be used 
| by the framework. The "local" disk, as well as a variety of cloud 
| based disks are available to your application. Just store away! 
| 
*/ 

'default' => env('FILESYSTEM_DRIVER', 'local'), 

/* 
|-------------------------------------------------------------------------- 
| Default Cloud Filesystem Disk 
|-------------------------------------------------------------------------- 
| 
| Many applications store files both locally and in the cloud. For this 
| reason, you may specify a default "cloud" driver here. This driver 
| will be bound as the Cloud disk implementation in the container. 
| 
*/ 

'cloud' => env('FILESYSTEM_CLOUD', 's3'), 

/* 
|-------------------------------------------------------------------------- 
| Filesystem Disks 
|-------------------------------------------------------------------------- 
| 
| Here you may configure as many filesystem "disks" as you wish, and you 
| may even configure multiple disks of the same driver. Defaults have 
| been setup for each driver as an example of the required options. 
| 
| Supported Drivers: "local", "ftp", "s3", "rackspace" 
| 
*/ 

'disks' => [ 

    'local' => [ 
     'driver' => 'local', 
     'root' => storage_path('app'), 
    ], 

    'public' => [ 
     'driver' => 'local', 
     'root' => storage_path('app/public'), 
     'url' => env('APP_URL') . '/storage', 
     'visibility' => 'public', 
    ], 

    'img' => [ 
     'driver' => 'local', 
     'root' => storage_path('images') 
    ], 

    's3' => [ 
     'driver' => 's3', 
     'key' => env('AWS_KEY'), 
     'secret' => env('AWS_SECRET'), 
     'region' => env('AWS_REGION'), 
     'bucket' => env('AWS_BUCKET'), 
    ], 

], 

]; 

、これは私がテンプレートに画像を呼んでいる方法です:私がチェックした

<img src="{{asset('storage/images/icons/icon.png')}}"> 

、および画像は、物理的にROOT/storage/app/public/imagesに位置しています。

私はここで間違っていますか?そして、最も重要なのは、なぜ私のローカルサーバー環境ではなく、ローカル環境でも正常に動作するのでしょうか?

追加情報:本番サーバーは、私の会社のメインサイトのサブドメインのHostgatorによってホストされています。それが問題なのかどうかはわかりませんが、私はこの全部が初めてだと言っています。

+0

パブリックフォルダ内の画像を一覧表示できますか? (ls public/storage/images/icons)。イメージがある場合は、ホストのリダイレクトモジュールに問題があると思っています –

+0

これらが静的アセット(アップロードされていない)であれば、それらを 'ROOT/public/images'に保存して、' ' – ljubadr

+0

また、プロジェクトルート' ls -l public/|からプロダクションサーバをチェックしてください。 grep storage'が表示されます。 – ljubadr

答えて

1

ブレードテンプレートで使用しているassetヘルパーは、publicアセットのパス、つまりLaravelアプリケーションのpublicフォルダーにあるアセットを提供します。静的資産(ロゴ、背景画像など)は、アプリが提供されているpublicディレクトリに保存してください。

storageディレクトリは、新しいプロファイル画像をアップロードするユーザーなど、アプリケーション内のユーザーがにアップロードした資産に使用されます。ストレージパスを取得するには、storage_pathヘルパ関数を使用してパスを取得します。または、Storage::url()メソッドを使用して、ストレージパスの完全なURLを取得することもできます。