当前我有一个使用laravel 5.5的项目
我有一些文本文件存储在storage/public/*
中
我一直在考虑是否有一种方法可以使用laravel的刀片并直接打开所选文件,而不是向后端发出请求以检索内容然后显示。
这个想法是在*.blade.php
内部,您可以单击一个按钮,然后不向后端提出请求,可以打开文本文件然后显示内容吗?
例如,我确实有类似html代码的
<input type='hidden' value='filePath' name=path>
<a href="">text file name</a>
单击锚点时,通常是向后端请求打开文件,获取内容,然后将其传递回前端。 但是我在想的是,因为前端知道路径在哪里,所以文件名。可以在前端进行吗?这样,也无需更快地完成请求。
但是我不知道如何启动它。
有人有什么建议吗?
在此先感谢您的帮助。
答案 0 :(得分:0)
假设查看网页的人员可以访问您的文件,则可以使用file URLS(或仅在刀片文件中输入URL?)。
<a href="http://public/fixed/path/to/file">Title</a>
或者,如果生成刀片文件时文件是预先确定的,则在控制器中执行以下操作:
use Illuminate\Support\Facades\Storage;
public function index()
{
return view('view.name', [
'url' => Storage::url('file.jpg')
]);
}
在您的Blade文件中:
<a href="{{ $url }}">Title</a>
如果您将刀片文件视为前端,则请记住,一旦用户查看刀片文件,该文件就不会托管在服务器上。您将需要执行上述操作,以使刀片服务器生成正确的文件URL(除非您只是在谈论静态的托管文件)
但是,如果您对后端和前端的引用是关于逻辑应该走到哪里,那么答案就是“后端”。 MVC模式的重点是将正确的逻辑放在正确的位置,因此Blade文件(在MVC中表示View的V)仅应与表示有关,而不是挖掘文件并生成URL。