我正在制作一个laravel webapp,我试图访问一个存储符号链接/storage/images/face-ph.png中的图像。当我在本地这样做的时候,它是有效的:<img src="/storage/images/face-ph.png>个然而,当我上传到Heroku时,它找不到路径。
/storage/images/face-ph.png
<img src="/storage/images/face-ph.png>
ubby3x7f1#
阿德南的回答有两个问题:
heroku run bash
php artisan storage:link
我使用了一个简单的相对符号链接来链接这两个目录,并将其添加到您的git仓库中:cd public/ && ln -s ../storage/app/public storage && cd ..
cd public/ && ln -s ../storage/app/public storage && cd ..
unftdfkk2#
如果您正在使用Heroku进行部署,可以尝试
heroku run bash php artisan storage:link
或
heroku run /app/php/bin/php /app/www/artisan storage:link
可以使用绝对路径或相对路径运行二进制文件希望这对你有帮助
lndjwyie3#
Heroku没有提供在Live Dyno上链接存储的方法。在经历了许多头痛之后,唯一的解决方案是在我的应用程序中创建一个路由,我可以用它来发送“php Artisan storage:link”命令。下面是代码:
Route::get('/artisan/storage', function() { $command = 'storage:link'; $result = Artisan::call($command); return Artisan::output(); })
阅读更多信息:https://www.anycodings.com/1questions/4583766/laravel-storagelink-does-not-work-on-heroku
3条答案
按热度按时间ubby3x7f1#
阿德南的回答有两个问题:
heroku run bash
来执行一个命令,它只在一个一次性的dyno中执行。所以这不会影响实时的dyno。php artisan storage:link
命令生成一个带有绝对路径的符号链接,所以当你在构建过程中运行它时,它会Map临时构建目录的绝对路径,而不是dyno上最终应用的目录。我使用了一个简单的相对符号链接来链接这两个目录,并将其添加到您的git仓库中:
cd public/ && ln -s ../storage/app/public storage && cd ..
unftdfkk2#
如果您正在使用Heroku进行部署,可以尝试
或
可以使用绝对路径或相对路径运行二进制文件
希望这对你有帮助
lndjwyie3#
Heroku没有提供在Live Dyno上链接存储的方法。在经历了许多头痛之后,唯一的解决方案是在我的应用程序中创建一个路由,我可以用它来发送“php Artisan storage:link”命令。
下面是代码:
阅读更多信息:https://www.anycodings.com/1questions/4583766/laravel-storagelink-does-not-work-on-heroku