Lumen : 如何在 public 文件夹中显示图像?

Lumen : How to display the image on a public folder?

我想在 Lumen 项目中显示存储在 public 文件夹中的图像。 但是当我试图在浏览器中显示它时,我得到了 404 未找到。

我已经创建了资产 url 助手:

if (!function_exists('urlGenerator')) {
    /**
     * @return \Laravel\Lumen\Routing\UrlGenerator
     */
    function urlGenerator() {
        return new \Laravel\Lumen\Routing\UrlGenerator(app());
    }
}

if (!function_exists('asset')) {
    /**
     * @param $path
     * @param bool $secured
     *
     * @return string
     */
    function asset($path, $secured = false) {
        return urlGenerator()->asset($path, $secured);
    }
}

这就是我对图片的称呼 URL :

asset('public/uploads/images/product/') . $product->image

当我尝试调用 public 文件夹中的图像时,为什么 lumen 指的是路由?

asset() URL 助手已经生成了根文件夹的路径(在 public fodler 中),因此您不需要包含它。

使用:

asset('uploads/images/product/' . $product->image)

asset('uploads/images/product/') . $product->image

应该适合你。

请记住,您始终可以查看生成的 link 以了解您的助手正在生成什么 - 并根据需要对其进行调整。

你可以像下面那样做。

asset('uploads/images/product/' . $product->image)

asset('uploads/images/product/') . '/' . $product->image