1

我目前使用http://apidocjs.com/作为我的 laravel apidoc,因为我之前只是习惯了它。

要查看 apidoc,每次我都必须将其index.html拖入浏览器,这很烦人。

是否可以将其制成静态页面,以便与我共享 apidoc 的人可以生成文档然后转到路线。

我尝试了类似...将我的文件夹放在应用程序apidoc文件夹下public并尝试添加诸如

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

他们两个都没有工作,index.html无法加载cssjs因为在index.html源 URL 中是这样的vendor/polyfill.js,然后试图去localhost:8000/vendor/polyfill.js,但实际上 url 应该是这样的localhost:8000/apidoc/vendor/polyfill.js

有谁知道如何轻松解决这个问题?

提前感谢您的帮助

4

1 回答 1

2

您也可以通过注册供应商路线来“欺骗”一点:

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...'>以便文件可以自动请求正确的资源。

于 2018-11-12T06:57:12.840 回答