2016-12-21 24 views
0

ローカルで作業していたときにファイルをストレージに保存すると、自動的にpublic/storageディレクトリに表示されます。今は同じプロジェクトを共有サーバーに転送しましたが、ストレージはpublic/storageディレクトリと同期していないようです。Laravelストレージがパブリックストレージフォルダと同期していない

これは私がファイル保存方法です:

$path = 'app/public/images'; 
$img->save(storage_path($path.'/photo.jpg')); 

そして、これは私がそれを取得する方法である:

Storage::url('public/images/photo.jpg); 

NBを:私はローカルphp artisan storage:linkを使用してストレージをリンクし、私はかどうかを知りません私はもう一度やり直す必要があります(私は共有ホストにいるので、可能ならば難しいかもしれません)ので、私は別のサーバーにいます。

+0

質問に記載されているように、フォルダ間にシンボリックリンクを作成できるはずです。これが失敗した場合は、エラーがあれば教えてください 'php artisan storage:link' –

答えて

0

私がしなければならなかったのは、ストレージディレクトリをシンボリックリンクすることでした。しかし、ホストがSSHをサポートしていないため、php artisan storage:linkを使用できませんでした。代わりに私はthis solutionを使用しました。

0

共有ホスティングでいくつかのプロジェクトを展開しましたが、同じエラーが発生しました。共有イメージングでインデックスルートが異なるため、パス付きストアイメージの問題が原因です。あなたはこのように修正することができます。

$my_public = 'home/username/public_thml/your_project_laravel/' 
$path = 'app/public/images'; 
$img->save($my_public.$path.'/photo.jpg')); 

あなたは他の方法があなたの共有ホスティングでは、公共のhtmlのルートを変更ですが、あなたならば、それは、アカウント内のすべての参照パスを変更します、あなたの共有ホスティングのパスをspecifc必要同じホスティングで他のWebサイトを持っていることは良い解決策ではありません。

関連する問題