当代码被推送到实际站点时,laravel符号链接会被更改

时间:2017-10-24 19:59:05

标签: laravel-5 storage symlink gitignore

我正在使用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

我如何摆脱这个问题。

提前致谢!

2 个答案:

答案 0 :(得分:2)

当您的符号链接指向项目目录结构中的另一个位置时,您可以安全地使用相对路径进行链接,而不是使用绝对路径(这是artisan正在设置的内容)。这需要手动链接(如果你已经在app/public中删除了当前链接):

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

答案 1 :(得分:1)

您可以考虑在目标Git仓库中设置post-receive hook(您要推送的目标)。例如,请参阅this one

在该钩子中,您可以添加所需的任何步骤(例如修复符号链接)。

相关问题