- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我做了什么
当我研究在 laravel 中存储文件时。我遇到了两种方法。
public/storage
到存储/应用/公共(public)
当我研究使用哪一个时,我遇到了这个堆栈溢出链接。 👉 Difference between storing files in public directory and in storage in Laravel 5.4在最佳答案的这个链接中提到,
Public folder means files will be publicly accessible.
For example an image stored in
public/images/my-image.jpeg
can be viewed by anyone bygoing tomysite.com/images/my-image.jpeg
However, files stored in storage directory are only available to yourapp.
👆 因为,包括上面提到的堆栈溢出帖子,以及我在不同平台上阅读的许多其他帖子都暗示了一个事实,即 public
目录中的文件可以通过网络访问,而 storage
目录不是,我试图通过将文件同时存储在 public
目录和 storage
目录中来测试这一点,一次一个,然后检查文件是否可以通过 web url 访问。
我的尝试如下,
images/
目录并放置一些图像(让我们说test1.jpg
, test2.jpg
和test3.jpg
) 到那个目录。然后在我的 Blade 里面我的 src
属性的模板img
标签我将它们称为URL('images/test1.jpg')
等等...它们确实是呈现在网页上。然后我也尝试访问图像通过转到的网址http://localhost:8000/images/test.jpg
。结果是正如预期的那样,图像在网页上呈现 + 它们是可从 url 访问php artisan storage:link
在控制台上,根据我阅读的文章,应该在目录之间创建一个符号链接(symbolic link)
public/storage
和 storage/app/public
。运行命令后,我得到了一个名为的新文件夹在 public
中创建的 storage
目录。然后我把我所有的图片都移到那个public/storage
目录。然后设置src
属性我的 img
标签为URL('storage/test1.img')
等等...图像是呈现在网页上。然后我试着检查图像是否仍然可以从 url 访问。为此,我去了网址栏http://localhost:8000/storage/test1.jpg
。 的图片仍然可以从 url 访问。问题
但是,根据我提到的答案和其他一些类似的链接,我预计这些图像无法从上面 2) 中的 url 访问,因为图像现在实际上应该在 storage/app/public
我们已经从 public/storage
创建了一个符号链接(symbolic link)。 (storage
目录中的文件不应该是公开访问的,对吧?)
这让我想到了两个问题,
public/storage
到 storage/app/public
的符号链接(symbolic link)并存储后,图像仍然可以从 url 访问public/storage
目录中的图像?public/storage
仍然可以通过网络访问url,实际创建符号链接(symbolic link)有什么好处?它似乎没有提供任何更多的安全性,因为文件是仍然可以从 url 访问。如果有人能帮助我理解上述两个问题的答案,那将非常有帮助。谢谢。
最佳答案
发生在你身上的是预期的行为。
Laravel 存储的目的是与您的本地文件交互并利用 Laravel 助手,此外还可以轻松地跨部署共享。说我会避免将您的文件直接移动到您的公用文件夹。
另一方面,通过将文件添加到您的 storage/app/public
文件夹,您假设这些文件将可公开访问,但在您创建符号链接(symbolic link)之前它们不会公开是一种指向另一个文件的特殊文件。当您创建一个符号链接(symbolic link)时,您是在说“嘿,如果用户访问 http://localhost:8000/storage/
,只需显示存储在 storage/app/public
中的文件>"
所以如果你想要私有(private)文件(并且你已经创建了一个符号链接(symbolic link))就不要将它们上传到你的 storage/app/public
文件夹,而不是把你的私有(private)文件从公用文件夹,例如 storage/app/myfiles
他就是你的答案:
1 - Why are the images are still being accessible from the url evenafter I created a symbolic link from public/storage tostorage/app/public and stored the images in the public/storagedirectory?
因为事实上,您已经为此目的创建了一个符号链接(symbolic link),使 storage/app/public
可公开访问。
2 - As happened with my case, if the files in the public/storage arestill accessible through the web url, what are the advantages ofactually creating the symbolic link? It does not seem to offer anymore security since the files are still accessible from the url.
如前所述,优点是可以使用 Laravel 文件系统。公共(public)链接不能确定您文件的隐私
关于laravel - 从 public/storage 到 storage/app/public 的符号链接(symbolic link)仍然使存储目录中的文件可以从网络访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69149411/
每次我尝试构建(执行完整的 Clean,然后构建)时,我都会在 Eclipse 的问题部分下弹出此错误消息。项目本身旁边还显示一个错误。 我已经尝试了同一问题的其他解决方案中包含的所有内容: 删除项目
我收到以下错误(注意:我使用的是 Netbeans): java.sql.SQLException: No suitable driver found for jdbc:derby://localho
例如 //somewhere struct IFace; struct Base { Base(IFace* iface): f(iface) { //wi
我试图通过 stringstream 将 double 变成字符串,但它不起作用。 std::string MatlabPlotter::getTimeVector( unsigned int xve
我正在尝试使用 AudioKit 框架中的音序器播放音频文件。 AudioKit.output = sampler AudioKit.start() sampler.enableMID
昨天我问了一个关于插入 Heroku 的问题。它不工作,然后突然开始工作。我什么都没改变。现在在一个新的应用程序上,我遇到了完全相同的问题。我决定包含我的整个 Gemfile,希望我可以继续没有这种令
我知道,这个topic已经是discussed许多times,所以直截了当。 这是ItemsSource的TabControl: Tabs = new ObservableCollection {
我有一个更新对象的函数,问题是当我从更新表单字段返回到详细 View 时,它初始化旧对象而不是更新后的对象。 我想在 CarService 而不是 app.js 中填充汽车列表 这是我的汽车服务:
在 resolution comments错误报告 12266 (“套接字连接错误导致资源泄漏”),Robert Ehteshamzadeh 写道 TClientSocket is deprecate
我最初发布了一个问题 here 我发现 JTextField 仅在 JScrollPane 存在时才调整大小。换句话说,我可以根据需要最小化和最大化它,直到出现滚动条(因为文本太多,无法放入窗口)。之
我读过关于 postion:absolute 的问题并尝试了几乎所有可能的解决方案。包括相对定位 div,将它们包装在相对定位的父级中等等,但它没有帮助。 我正在绘制一个表格,然后我将 div 放入其
我在这里发起了一个话题document.getElementById not working但看起来即使提出的建议都是有效的,我仍然有问题。 我有几个复选框。当我在这里查看页面源代码时,有。 docu
我正在做一些阅读,试图更好地理解按位运算符,然后偶然发现了 a helpful old blog post from 2012 ,其中指出 - 在随机正整数 x 的奇数测试中 - 在作者的计算机上评估
我正在尝试在 Eclipse Neon 中使用 aspectj 创建一个示例 maven 项目。然而,方面并没有编织/工作(参见下面的输出)。我尝试寻找很多原因和解决方案,但没有一个有效(请参阅下面的
无论我如何配置我的 appsettings.json 和 appsettings.Development.json,除非我手动添加 ConfigureLogging,否则我无法在信息消息下方记录任何内
我正在尝试使用 JQuery .get() 方法和 JavaScript for 循环来处理来自外部文件的一些数据。我已经在 stackoverflow 上阅读了有关闭包和回调返回值的内容几个小时,但
我正在使用 PHP 5.6 并且要打印一些东西,我必须编辑 php.ini 并包含 php_printer.dll 文件。但是 PHP 5.6 没有.dll 文件。 我要解决的问题: 我想将凭证打印机
我目前正在调试一个包含内存泄漏的大(非常大!)C# 应用程序。它主要使用 Winforms 作为 GUI,尽管一些控件是在 WPF 中制作的,并由 ElementHost 托管。直到现在,我发现许多内
[已解决] 看来 PHP MYADMIN 变量成功了。我将 wait_timeout 设置为 30 ,并将 Lock_wait_timeout 设置为 50 花了将近 6 个小时才恢复稳定,包括几次重
我读过几个关于该主题的讨论,有人说 qmake < 3.0 不正确支持该指令。我刚刚为 g++-64 重新安装了 Qt 5.9.1,但问题仍然存在。此外,我尝试过各种 mkspecs/xxx/xxx.
我是一名优秀的程序员,十分优秀!