Как использовать маршрут для просмотра статической страницы Apidoc с Laravel

Я сейчас пользуюсь http://apidocjs.com/ как мой апидок Laravel, потому что я просто привык к этому раньше.

чтобы просмотреть апидок, каждый раз, когда я должен перетащить index.html в браузер, что довольно раздражает.

Можно ли превратить его в статическую страницу, чтобы люди, с которыми я делюсь апидоком, могли просто сгенерировать документ и перейти к маршруту.

Я пытался что-то вроде … положить мой apidoc папка под public папку приложения, а также попытался добавить маршрут, такой как

Route::get('/apidoc', function(){
return File::get(public_path() . '/apidoc/index.html');
});

Оба они не работали index.html не может загрузить css а также js потому что в index.html URL-адрес источника что-то вроде vendor/polyfill.js который затем попытался пойти localhost:8000/vendor/polyfill.js но на самом деле URL должен быть что-то вроде localhost:8000/apidoc/vendor/polyfill.js

Кто-нибудь знает, как это легко исправить?

Заранее благодарю за любую помощь

0

Решение

Вы также можете немного «обмануть», зарегистрировав маршруты поставщиков:

Route::get('vendor/{any}', function ($any) {
abort_unless(is_readable(public_path("apidoc/vendor/$any")), 404);
return File::get(public_path("apidoc/vendor/$any"));
})->where('any', ".*");

Route::get('apidoc', function(){
return File::get(public_path() . '/apidoc/index.html');
});

Конечно, идеальное решение — если вам действительно удастся изменить шаблон, который вы используете для index.html, чтобы использовать относительные, а не абсолютные пути (то есть изменить все <link href='/vendor...'> в <link href='vendor...'> поэтому файл может автоматически запрашивать правильный ресурс.

2

Другие решения

Других решений пока нет …