можно использовать blade.php, чтобы открыть локальный файл и показать содержимое?Laravel - PullRequest
0 голосов
/ 22 января 2019

В настоящее время у меня есть проект с laravel 5.5 У меня есть несколько текстовых файлов, хранящихся в storage/public/* Я думал, есть ли способ использовать лезвие laravel и открыть выбранный файл напрямую, вместо того, чтобы сделать запрос к бэкэнду, чтобы получить содержимое и затем отобразить.

Идея внутри *.blade.php будет кнопка, которую нужно щелкнуть, и вместо того, чтобы сделать запрос к бэкэнду, мы можем просто открыть текстовый файл и показать содержимое?

скажем, например, у меня есть HTML-код, как

<input type='hidden' value='filePath' name=path>
<a href="">text file name</a>

когда щелкают якорь, обычно он делает запрос к бэкэнду, открывает файл, получает содержимое, передает его обратно на фронт. Но я думаю, что интерфейс знает, где находится путь, имя файла. Возможно ли сделать это на переднем конце? Таким образом, нет необходимости выполнять запросы быстрее.

Но я понятия не имею, как его запустить.

У кого-нибудь есть предложения?

Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 24 января 2019

Предполагая, что ваши файлы доступны для человека, просматривающего веб-страницу, вы можете использовать URL-адреса файла (или просто ввести 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>

Если вы рассматриваете блейд-файл как внешний интерфейс, помните, что он не размещается на сервере, когда пользователь просматривает его. Вам нужно будет сделать что-то подобное выше, чтобы позволить blade-серверу генерировать правильные URL-адреса файлов (если только вы не говорите о статических, размещенных файлах)

Но, если ваша ссылка на back-end и front-end касается того, куда должна идти логика, тогда ответ - «back end». Смысл паттерна MVC состоит в том, чтобы поместить правильные биты логики в правильные места, поэтому файл Blade (представляющий V для View в MVC) должен касаться только представления, а не копания файлов и генерации URL-адресов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...