2017-10-24 1 views
1

laravel 5.5のストレージシンボリックリンクを使用して画像を保存しています。 gitにコードをプッシュしてライブサイトからプルすると、ライブサイトのシンボリックパスはローカルコードと同じになります。 私の地元では、このシンボリックリンクコードがライブサイトにプッシュされると、laravelのシンボリックリンクが変更されます

storage -> /home/path/to/project/app/public/ 

を持っていますが、ライブサイトでは、このシンボリックリンクのパス

storage -> /var/www/html/website.com/public_html/project_code/storage/app/public/ 

私はシンボリックリンクを削除し、ライブサイト上でそれを再度作成する必要がありますたびに期待しています。 私は私のシンボリックリンクがライブサイトによるとなり、これらの手順を実行した後、ライブサイト

cd public 
rm storage 
cd .. 
php artisan storage:link 

上でこれらの手順を行う必要があり、その後、それが作業を開始します。私はこの問題を取り除くことができますどのように

public/storage 

project_code /ストレージ/アプリ/ .gitignore

* 
!public/ 
!.gitignore 

: ライブサイトは

storage -> /var/www/html/website.com/public_html/project_code/storage/app/public/ 

project_code/.gitignoreをこのシンボリックリンクを持っている必要があります。

ありがとうございます!

答えて

1

symlinkがプロジェクトディレクトリ構造内の別の場所を指しているので、絶対パス(相対パス)を設定するのではなく、リンクの相対パスを安全に使用することができます(artisanが設定されています)。それは(すでにapp/publicでそれを持っている場合、現在のリンクを削除します)しかし、マニュアルのリンクが必要になります。自動的にいくつかのコマンドを実行するために本当に便利でした

cd app/public 
ln -s ../storage/app/public storage 
1

ターゲットのGitリポジトリ(押しているもの)にpost-receive hookを設定することを検討することもできます。たとえば、this oneを参照してください。

このフックでは、必要なステップ(シンボリックリンクの修正など)を追加できます。

+0

感謝を。 – Afraz

関連する問題