【问题标题】:Laravel deployed to shared hosting not displaying imageLaravel 部署到共享主机不显示图像
【发布时间】:2020-02-24 17:39:33
【问题描述】:

我部署了一个 laravel 应用到共享主机(hostinger)。一切正常,除了没有显示的图像。

我已经用我的 public_html 文件夹创建了我的 storage 文件夹的符号链接。上传的文件进入公用文件夹,但当我链接图像时,它们仍然没有显示。

我创建了指向 public_html 的符号链接,因为我无法访问公用文件夹。我需要这方面的帮助

我需要在浏览器上显示图片

【问题讨论】:

  • 您无法在共享主机上创建符号链接ln linux 命令已禁用
  • 有一个 Laravel 命令用于将图像链接到 public 文件夹:php artisan storage:link;图像上传到storage 文件夹,然后符号链接到public。你在使用这种方法吗?还是定制的?
  • public_html 文件夹替换了公用文件夹。我已经使用 ssh 创建了符号链接。链接位于 public_html 文件夹和 storage/app/public 文件夹之间。
  • 从我的 public_html 文件夹中,我可以看到符号链接的文件夹,但图像的链接不起作用...
  • 无论如何我可以在这里上传屏幕截图。这样你就能明白我的真正意思了

标签: laravel


【解决方案1】:

如果您的公共资产目录不是根文件夹中的public 目录,则您必须找到该目录的路径。在您的情况下,公共资产目录是public_html。所以请从根文件夹绑定路径。

class AppServiceProvider extends ServiceProvider
{

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        if (App::environment('prod')) {
            $this->app->bind('path.public', function() {
                return base_path('../../public_html');
            });
        }
    }
}

【讨论】:

    【解决方案2】:

    在默认 Laravel 部署中,符号链接在 public 文件夹中创建为 storage 并链接到 ../storage/app/public

    为了调试您的问题,请查看您浏览器的开发者工具,以确定是 404 还是 403 问题(甚至是其他问题)。

    请检查权限是否正确。否则,您可以将物理存储路径更改为 public 文件夹内的内容。这避免了创建符号链接的要求。请记住,例如通过.htaccess 保护非公共存储。

    【讨论】:

      猜你喜欢
      • 2019-09-25
      • 2018-12-02
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      相关资源
      最近更新 更多