我正在使用laravel 5.5的存储符号链接来存储图像。当我将代码推送到git并从实时站点拉出时,实时站点上的符号链接路径与我的本地代码上的符号链接路径相同。 我的本地有这个符号链接
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
执行这些步骤后,我的符号链接变为根据实时网站,然后它开始工作。 实时网站应该有这个符号链接
storage -> /var/www/html/website.com/public_html/project_code/storage/app/public/
project_code / .gitignore:
public/storage
project_code /存储/应用程序/的.gitignore
*
!public/
!.gitignore
我如何摆脱这个问题。
提前致谢!
答案 0 :(得分:2)
当您的符号链接指向项目目录结构中的另一个位置时,您可以安全地使用相对路径进行链接,而不是使用绝对路径(这是artisan
正在设置的内容)。这需要手动链接(如果你已经在app/public
中删除了当前链接):
cd app/public
ln -s ../storage/app/public storage
答案 1 :(得分:1)
您可以考虑在目标Git仓库中设置post-receive hook(您要推送的目标)。例如,请参阅this one。
在该钩子中,您可以添加所需的任何步骤(例如修复符号链接)。