Swagger不在laravel 5.6中发布资产文件

时间:2018-07-20 19:03:40

标签: php laravel swagger

我已使用DarkaOnLine / L5-Swagger软件包在Swagger中安装了laravel 5.6,我已按照

的安装说明进行操作
  

php作曲家需要“ darkaonline / l5-swagger:5.6。*”

     

php artisan供应商:发布--provider   “ L5Swagger \ L5SwaggerServiceProvider”

我也设置了

  

L5_SWAGGER_GENERATE_ALWAYS = true

在我的环境中并创建了一个控制器并添加了

/**
 * @SWG\Swagger(
 *     schemes={"http","https"},
 *     host="api.host.com",
 *     basePath="/",
 *     @SWG\Info(
 *         version="1.0.0",
 *         title="This is my website cool API",
 *         description="Api description...",
 *         termsOfService="",
 *         @SWG\Contact(
 *             email="contact@mysite.com"
 *         ),
 *         @SWG\License(
 *             name="Private License",
 *             url="URL to the license"
 *         )
 *     ),
 *     @SWG\ExternalDocumentation(
 *         description="Find out more about my website",
 *         url="http..."
 *     )
 * )
 */

之后,我输入

php artisan l5-swagger:generate
php artisan vendor:publish

当我访问/ api / documentation时,出现白屏,并且在控制台中出现以下错误

enter image description here

我们将非常感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

我已逐步解决了该问题:

只需从供应商文件夹中复制文件,然后将其添加到特定路径中即可。

从以下位置复制所有文件:laravel-yourapp \ vendor \ swagger-api \ swagger-ui \ dist

然后将所有文件粘贴到路径:laravel-yourapp \ public \ docs \ asset

答案 1 :(得分:0)

在调试之后,我发现当我通过打开的本地主机端口(例如http://localhost:8000/api/documentation)访问swagger页面时出现错误,解决方案是通过完整的laravel url(例如http://localhost/my-app-name/public/api/documentation)访问它。

答案 2 :(得分:0)

1 - 尝试将 /dist 中的 \vendor\swagger-api\swagger-ui 目录复制到 \public_html\swagger-api\

2 - 将 "swagger_ui_assets_path" 地址从 \config\l5-swagger.php 更改为 'public_html\swagger-api\'

3 - 更改视图文件 \resources\views\vendor\l5-swagger\index.blade.php

linkscript 标记中的所有链接

4- 输入命令 php artisan l5-swagger:generate 或在 .env 文件中添加 L5_SWAGGER_GENERATE_ALWAYS=true

答案 3 :(得分:0)

在 Laravel 8 中。文档说它使用包自动发现功能。但事实并非如此。

您必须在提供者部分添加到您的 config/app.php:

L5Swagger\L5SwaggerServiceProvider::class,

然后,你必须运行

php artisan config:cache

只有这样,你才能运行

php artisan vendor:publish --provider 'L5Swagger\L5SwaggerServiceProvider'