我已将 Laravel 10 部署到 Siteground。我将 Laravel 公共文件夹的内容直接放在
public_html
中,并在 public_html
中为 Laravel 目录结构的其余部分创建了一个单独的文件夹。因此,存储文件夹(这是一个符号链接)位于 public_html
内。但是,我上传到Laravel/storage/app/public
的所有图像在网站上都不可见。我尝试使用 ln -s
Linux 脚本通过 SSH 重新创建符号链接。符号链接似乎存在,但我仍然无法查看网站上的图像。我还尝试修改 .env(APP_URL)
或 .env(APP_STORAGE_PATH)
和文件系统文件,但无济于事。我可能做错了什么?
这是我迄今为止尝试过的:
ln -s
将 storage/app/public
与 public_html/storage
链接。这似乎有效,因为我可以看到符号链接,但我仍然无法查看网站上的图像。.env(APP_URL)
或.env(APP_STORAGE_PATH)
和文件系统文件,但这似乎没有任何效果。我已经没有主意了。谁能提供一些指导吗?
这是不可取的。您的 public_html 目录将是 Web 服务器所指向的目录,这意味着任何人都可以访问所有 Laravel 代码,其中可能包括您的 .env 文件,该文件是常见的攻击点,因为它可能包含敏感的 API 密钥和数据库凭据。
我不熟悉您所指的主机,但我强烈建议您联系他们的支持人员,并与他们核实您是否能够更改 Web 服务器的文档根目录并维护标准 Laravel 文件结构以保护您需要远离窥探的文件。
符号链接,例如相对于链接或绝对的路径。首先应该起作用的是
cd public_html
,您可以删除存储目录(如果存在)。然后运行ln -s ./Laravel/storage/app/public ./storage
。存储目录现在应该链接到您的私人存储,请参阅ls -l
。