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

4
我已经安装了 Laravel 5.6,并使用 DarkaOnLine/L5-Swagger 包安装了 Swagger。我按照以下安装说明进行操作:

php composer require "darkaonline/l5-swagger:5.6.*"

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

我还在我的 env 中设置了

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

您的帮助将不胜感激。


我也遇到了同样的问题,但至今仍未找到任何解决方案... - Ashfaq Muhammad
5个回答

10
我已经通过以下步骤解决了这个问题:
只需从供应商文件夹中复制文件并添加到特定路径即可。
从以下位置复制所有文件:laravel-yourapp\vendor\swagger-api\swagger-ui\dist
然后将所有文件粘贴到路径:laravel-yourapp\public\docs\asset

0
在Laravel 8中,文档称其使用了自动发现功能,但这并不正确。
你需要在config/app.php文件的providers部分添加以下内容:
L5Swagger\L5SwaggerServiceProvider::class,

然后,您需要运行

php artisan config:cache

只有这样,你才能运行

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

0

也许你在使用nginx的常用设置:

location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    expires max;
    try_files $uri =404;
}

需要添加:

location ~ (^/docs/asset/.*) {
    try_files $uri $uri/ /index.php$is_args$args;
}

location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    expires max;
    try_files $uri =404;
}

或者 等待 - https://github.com/DarkaOnLine/L5-Swagger/pull/503


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


-2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接