配置文件图片的 Laravel Spark 符号链接不起作用

Posted

技术标签:

【中文标题】配置文件图片的 Laravel Spark 符号链接不起作用【英文标题】:Laravel Spark Symlink for Profile Pictures is not Working 【发布时间】:2016-10-20 06:29:53 【问题描述】:

在全新的 Spark 安装中,我的存储目录的符号链接出现了一些问题。我查看了 Spark 文档 (found here),并尝试按照 链接存储目录 部分下的说明进行操作。但是,当我运行命令时

ln -s /storage/app/public /public/storage

我收到以下错误:

ln: failed to create symbolic link ‘/public/storage’: No such file or directory.

这很奇怪,因为我已经通过命令行和编辑器进行了检查,并且该目录确实存在。

我也试过

ln -sr /storage/app/public /public/storage 建议here。

这确实创建了符号链接。但在我的应用程序中,我仍然收到 404 错误。

有关可能有帮助的其他信息:我正在使用 Homestead 环境进行开发,并使用 Spark 安装程序设置我的项目。我还查看了这个other Stack Overflow 问题,但它建议我采取我已经尝试过的相同步骤。

感谢您的帮助!

【问题讨论】:

我也遇到了同样的问题,我认为是因为项目的文件夹挂载到windows上,windows中没有链接。你找到解决办法了吗? @ldo567 我还没有找到解决方案,但我会尝试使用坐骑,看看是否能解决问题。感谢您的建议! 【参考方案1】:

从您的项目目录(包含composer.json 的目录)中尝试ln -s $(pwd)/storage/app/public $(pwd)/public/storage。您正在运行的命令尝试从位于文件系统根目录中的/storage... 建立链接。您确实在运行ln 时需要使用绝对路径,但您需要使用项目的完整路径。例如,在 Homestead 中,我的路径是 /home/vagrant/project-name/storage/app/public

【讨论】:

对于那些在云提供商上运行 spark 的人,您可以将其添加到您的 composer.json post-install-cmd: ln -sr storage/app/public public/storage 如果您正在运行 Homestead 或其他 Vagrant 类型的 Linux 虚拟机作为您的开发环境,您必须从虚拟机内部创建符号链接。

以上是关于配置文件图片的 Laravel Spark 符号链接不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Nginx修改配置实现图片防盗链

LAMP架构(配置防盗链,目录访问控制,文件/链接访问控制)

共享主机 Laravel 8 主机问题:Symlink 不工作

laravel-admin使用ueditor重命名图片名称问题

S3 上带有美元符号的垃圾 Spark 输出文件

httpd防盗链