[英]Uncaught ReferenceError: SwaggerUIBundle is not defined at window.onload
在我的本地主機上,我的 swagger 用戶界面運行良好。 localhost:3030/documentation 此 UI 也在服務器上工作,但從今天開始在服務器上它不工作https://digitalpathshalabd.com/documentation
錯誤
我遇到了同樣的“SwaggerUIBundle 未定義”,但有一個空白頁。 此外,問題僅在服務器上而不是本地。 它在過去也有效。 然后當我ctrl +f5 本地招搖頁面時,它也出現在本地。
對我們來說,配置順序似乎被交換了。 對我來說,修復是在招搖初始化之后移動 app.UseRouting()
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Procedure Service V1");
c.RoutePrefix = "";
});
app.UseRouting();
我正在使用 org.springdoc:springdoc-openapi-ui:1.6.9 版本並且遇到了這個問題。
我檢查了https://www.npmjs.com/package/swagger-ui並為較低的 swagger-ui 版本 3.0.21 添加了 maven 依賴項
<dependency>
<groupId>org.webjars</groupId>
<artifactId>swagger-ui</artifactId>
<version>3.0.21</version>
</dependency>
我發現“swagger-ui/index.html”沒有引用“swagger-initializer.js”,而是它的源代碼存在於 index.html 本身(這是指寵物商店的樣板)
因此,在我的 Spring boot 類路徑資源/公共文件夾中,我復制了舊的 swagger dist index.html 文件(其中包含初始化程序代碼)並進行了以下更改
<script charset="UTF-8" src="./swagger-ui/swagger-ui-bundle.js"></script>
<script charset="UTF-8" src="./swagger-ui/swagger-ui-standalone-preset.js"> </script>
查看你的swagger中間件配置是否正確?
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
});
services.AddControllers();
}
這會將 Swagger 生成器添加到服務集合中。 在 Configure() 方法中,讓我們啟用中間件來為生成的 JSON 文檔和 Swagger UI 提供服務:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseSwagger();
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.