Как использовать маршрут для просмотра статической страницы Apidoc с Laravel - PullRequest
0 голосов
/ 12 ноября 2018

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

для просмотра apidoc, каждый раз, когда мне приходится перетаскивать 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

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

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

1 Ответ

0 голосов
/ 12 ноября 2018

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

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...'>, чтобы файл мог автоматически запрашивать правильный ресурс .

...