使用Laravel 8的blade asset来显示图片,但从资源子文件夹加载
P粉428986744
P粉428986744 2023-11-09 12:47:02
0
1
902

我对 Laravel 还很陌生,所以请耐心等待。

我正在将我在 Node/React 中开发的框架复制到 Laravel。目前,我正在调整主要架构,目前正在制作刀片母版页。

目标 1:

我想在模板页面中使用blade {{ asset() }} 帮助程序加载图像。问题是我想从位于资源文件夹内的子文件夹加载图像:

/resources/app_files_layout

我知道我可以通过将文件夹移动到公共目录来做到这一点,但这不是我想要的。我的目的还在于加深对 Laravel 框架的学习和理解,并尝试在其他语言上保持与我的框架的架构保真度。

目标 2:

在我设法通过 Blade 中的 {{ asset() }} 帮助程序从 /resources/app_files_layout 加载图像后,我想在源代码中使用路径的别名。例子: 我希望它显示:http://localhost/images/image-name.jpg,而不是在浏览器中的输出 HTML 中显示 http://localhost/app_files_layout/image-name.jpg 并且从不向用户显示这些文件位于 app_files_layout 文件夹中。

我想要做的事情在 Laravel 中是否可行?

最坏情况:

如果 Laravel 没有必要的架构来完成我想要的操作,我可以设置一个在 /resources/app_files_layout 文件夹中显示图像的路线。也就是说:当我在浏览器上访问 http://localhost/images/image-name.jpg 时,应该加载位于 /resources/app_files_layout/image-name.jpg 中的图像。

我尝试遵循这个 stackoverflow 建议: https://stackoverflow.com/a/38736973/2510785 但是,返回给我一个错误,如下所示:

The requested resource /files-layout-test/backend-layout-header-tb02-03.jpg was not found on this server.

提前谢谢!

P粉428986744
P粉428986744

全部回复(1)
P粉928591383

我成功地做到了这一点。所有功劳都归功于 @donkarnash 关于这个问题,我发布了为其创建路由别名的最坏情况:Laravel 8 – 为公共目录中的图像文件夹创建路由别名

我使用了符号链接方法,几乎​​类似于@sergey-ligus在评论中提到的方法。

1 – 编辑 laravel \config\filesystems.php 文件: 最初看起来像这样:

links' => [
    public_path('storage') => storage_path('app/public'),
],

编辑后,如下所示:

'links' => [
    public_path('storage') => storage_path('app/public'),
    public_path('files-layout') => resource_path('app_files_layout'),
],

2 - 然后,在命令终端中,我执行了以下命令:

php artisan storage:link

3 - 最后,我运行了服务器并进行了测试。我不仅可以通过 http://localhost:8000/files-layout/backend-layout-header-tb02-03.jpg 在浏览器中访问该文件,而且仍然可以使用 laravel assetblade helper。

刀片文件:

{{ asset('/files-layout/backend-layout-header-tb02-03.jpg') }}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板