【问题标题】:Laravel show images outside root folderLaravel 在根文件夹外显示图像
【发布时间】:2018-10-04 20:57:22
【问题描述】:

我在本地机器上运行一个 Laravel 网站。 我的 laravel 在文件夹中: /用户名/bigproject/laravel-project

在我的 Laravel 应用程序的视图中,有一些标签应该显示来自 /Username/bigproject/images 文件夹(所以它在 laravel 根文件夹之外)。如何在 src 中形成 url 以便显示这些图像?

<img src="/Username/bigproject/images/image1.jpg"> 当然不起作用。

我玩过https://laravel.com/docs/5.4/filesystem 的磁盘存储,但没有结果。

PS。该项目实际上仅供本地使用。

【问题讨论】:

  • 最佳选项移动文件,第二好的符号链接
  • 我刚刚创建了符号链接 "ln -s /Username/bigproject/images /Username/bigproject/larave-project/public" 但它不起作用...(((
  • 你能浏览 /Username/bigproject/larave-project/public 吗?文件权限设置为什么?
  • 如果 PHP 可以访问这些文件,您可以从/通过 PHP 为它们提供服务。我曾经建立了一个网站,每个用户都有一个 Zip 用于他们的图像,并且它们是使用 PHP 直接从 zip 提供的。咳咳……这是一个邮购新娘网站……哈哈……主要原因是为了防止链接其他网站的图片(它在付费墙后面)
  • @IdontDownVote joxi.ru/gmv1kdWULDDJdr 它说用户名对于其他人(员工和每个人)来说是“读和写”,只有“读”

标签: php laravel image


【解决方案1】:

由于 Web 服务器无法访问其根目录以外的文件,您可以创建一个符号链接,以便文件可以同时位于两个位置。

ln -s /Username/bigproject/images /Username/bigproject/larave-project/public 

因此允许网络服务器(最终是浏览器)使用<img src="/catPic.jpg">访问文件

【讨论】:

  • 在我自己的项目中,链接 工作:) 所以可能你应该在你的答案中改变它
  • 很棒的解决方案。非常感谢。
【解决方案2】:

从我的头顶,所以我可能会遗漏一些东西:

  • cd 到myApp/storage
  • 运行ln -s /home/me/documents/myFolder myfolder创建符号链接

/config/filesystems.php 中添加到“磁盘”数组:

'mydisk' => 
  [
    'driver' => 'local',
    'root' => storage_path('storage/myfolder'),
    'url' => env('APP_URL').'/myfolder'
  ]

请让我知道它是否有效(未经测试),或纠正拼写错误。

【讨论】:

  • 您使用不同的文件结构编写它。我按照我的理解尝试了。它没有工作
  • 不,当然,使用你自己的文件结构。嗯,我周末试试,然后回来。
【解决方案3】:

如果项目仅供本地使用,并假设图像位于服务器根目录或服务器根目录内的任何文件夹(如 htdocs、html、public_html 等),最好的选择是形成 img 标签,如

src="127.0.0.1/bigproject/images/image1.jpg"

如果文件位于 webroot / 服务器根目录之外,您可以像访问它们一样访问它们

file:///c:/Users/Bigproject/images/image1.jpg

【讨论】:

  • 不会工作,文件仍然必须在 webroot 中,服务器才能看到它们
  • @IdontDownVote file:///c:/Users/.. 可以使用检查编辑的答案
猜你喜欢
  • 1970-01-01
  • 2020-01-22
  • 2017-09-03
  • 2014-03-07
  • 2017-08-01
  • 2020-12-19
  • 1970-01-01
  • 2021-10-07
  • 1970-01-01
相关资源
最近更新 更多