我在public_html/app文件夹中的共享主机上部署了laravel app.这是公共文件夹中的所有内容.在/../../files我有其余的文件.当我做php artisan存储:我的控制台说文件夹中的链接
[ErrorException]
symlink(): No such file or directory
Run Code Online (Sandbox Code Playgroud)
在localhost上,我将文件上传到storage/uploads文件夹.现在做什么?我试图改变链接,但没有什么对我有用......
Tur*_*nlı 119
转到/public目录并运行:
rm storage
转到Laravel根目录并运行:
php artisan storage:link
编辑于2018年5月1日
将laravel项目移动/复制到其他文件夹时会出现此问题.
存储链接仍然存在,从而导致异常错误.公共/存储文件夹存在并指向错误的位置,需要使用rm storage命令删除它.
php artisan storage:link在终端运行后,它将创建存储链接.
移动/复制/部署laravel时,每次都需要这样做!
Gav*_*vin 15
以防万一你在这里仍然没有答案。
我遇到了麻烦,因为我在本地做了符号链接,然后将文件复制到服务器。为了使它工作,我做了以下事情:
$ cd path/to/laravel/root
// if public does not exist, first create it.
$ cd public
// if public/storage does not exist, first create it.
$ rm -r storage
$ cd ..
// Now it should work
$ php artisan storage:link
Run Code Online (Sandbox Code Playgroud)
小智 8
通常在将Laravel应用移动到另一个目录后发生
实际的存储目录为“ / AppName / storage / app / public /”
Laravel创建一个指向实际存储目录“ / AppName / public / storage”的符号链接
其他意思
“ / AppName / public / storage”指向=>“ / AppName / storage / app / public /”
在将根应用程序目录更改为“ / AnotherAppName /”时,符号链接仍指向旧路径
“ / AnotherAppName / public / storage” =>“ / AppName / storage / app / public /”
我的解决方案是使用手动更新符号链接
ln -sfn /AnotherAppName/storage/app/public/ /AnotherAppName/public/storage
Run Code Online (Sandbox Code Playgroud)
小智 7
创建新的 php 文件并将以下代码放入该文件中:
<?php
symlink('/home/CpanelUser/storage/app/public', '/home/CpanelUserpublic_html/storage');
?>
Run Code Online (Sandbox Code Playgroud)
“CpanelUser”更改为您的 cpanel 用户名或主机名。
将此文件上传到站点执行文件的public_html文件夹(www),在浏览器中写入站点名称+此文件即可完成!
示例:我的文件名是 symlink.php,站点名称是 www.anysite.com 将 symlink.php 上传到主机中的 public_html 文件夹并在浏览器中获取网址
http://www.anysite.com/symlink.php
在 Laravel 的公共文件夹中执行此文件存储文件夹 creite 并链接到应用程序中的存储文件夹后。
小智 6
将来使用 Laravel Forge 的任何人。我在 Forge 中重命名域名时遇到此错误。
解决方案是进入公共目录并删除从原始域复制过来的现有符号链接。
删除此符号链接后,我能够php artisan storage:link再次运行并且运行正常。
使用共享托管时,我遇到相同的错误,我的公共目录移至public_html或其他目录,例如:根名称“ project”中的项目目录和根名称“ public_html”中的公共目录
当由Artisan :: call('storage:link')运行artisan命令时;然后面对这个错误。
解决方案:首先需要在app / Providers / AppServiceProvider注册方法中绑定您的公共目录
$this->app->bind('path.public', function() {
return base_path('../public_html');
});
Run Code Online (Sandbox Code Playgroud)
现在运行命令,它的工作正常
小智 5
要在您的服务器上修复此错误,请将目录更改为 public 并删除存储文件夹的符号链接。
以下命令将帮助您从公共文件夹中删除符号链接:
cd public
rm storage
Run Code Online (Sandbox Code Playgroud)
删除符号链接后,使用以下命令将目录更改为主文件夹:
cd ..
Run Code Online (Sandbox Code Playgroud)
现在使用以下命令创建符号链接:
php artisan storage:link
Run Code Online (Sandbox Code Playgroud)
成功运行命令后,您应该收到以下消息
The [public/storage] directory has been linked.
Run Code Online (Sandbox Code Playgroud)
我希望这篇文章对你有帮助。
| 归档时间: |
|
| 查看次数: |
23197 次 |
| 最近记录: |