如何在 Springfox 中更改 Swagger UI index.html 徽标和标题内容?

2023-11-23

我正在记录使用 Spring Boot 2.4.3 创建的 APIspringfox-swagger3.0.0。所以我现在有以下页面。

enter image description here

我的客户想要将 Swagger UI 徽标更改为他们自己的。我做不到。我搜索并找到了一些解决方案,但它不起作用。

  1. 在下面添加了以下自定义代码/resource/static/swaggercustm.css。但没有任何变化。

    .swagger-ui img {
       content: url('/static/css/mylogo.png');
       width: 140px; 
       height: 40px; 
    }
    
  2. 进口swagger-ui.css到本地并尝试修改图像路径。但这也没有帮助。

有人可以帮我修改徽标吗?如何覆盖徽标属性?


不幸的是,没有可用的配置Springfox用于自定义 UI 元素 CSS 和图标的库。

如果您想要自己的自定义 Swagger 页面,请创建一个static HTML page并禁用 Springfox 自动生成的 swagger 页面。 由于它是 HTML,您可以根据需要更改图标及其外观。

资源/静态/new_swagger.html

<!-- HTML for static distribution bundle build -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Custom Swagger UI</title>
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.24.2/swagger-ui.css" >
    <link rel="icon" type="image/png" href="./swagger-favicon-32x32.png" sizes="32x32" />
    <link rel="icon" type="image/png" href="./swagger-favicon-16x16.png" sizes="16x16" />
    <style>
      html
      {
        box-sizing: border-box;
        overflow: -moz-scrollbars-vertical;
        overflow-y: scroll;
      }

      *,
      *:before,
      *:after
      {
        box-sizing: inherit;
      }

      body
      {
        margin:0;
        background: #fafafa;
      }

      .top-nav-bar{
        position: fixed;
        top: 0;
        z-index: 99;
        width: 100%;
        overflow: hidden;
        background: #333;
        padding: 15px;
      }
      .nav-bar-icon{
        margin-top: 1px;
        float: left;
        display: block;
        text-decoration: none;
      }
      .nav-bar-title{
        float: left;
        display: block;
        text-decoration: none;
        margin-top: 7px;
        margin-left: 10px;
        font-size: 18px;
        color: #ffffff;
        font-family: sans-serif;
      }
      .nav-bar-select{
        width: 30%;
        float: right;
        font-family: sans-serif;
        display: inline-block;
        cursor: pointer;
        padding: 10px 15px;
        outline: 0;
        border-radius: 2px;
        border: none;
        background: #fafafa;
        color: #3b4151;
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
      }
      select.classic {
        background-image: linear-gradient(45deg, transparent 50%, #111 50%), linear-gradient(135deg, #111 50%, transparent 50%);
        background-position: calc(100% - 20px) calc(1em + 2px), calc(100% - 15px) calc(1em + 2px), 100% 0;
        background-size: 5px 5px, 5px 5px, 3.5em 3.5em;
        background-repeat: no-repeat;
      }
    </style>
  </head>

  <body>
    <div class="top-nav-bar">
      <a class="nav-bar-icon"><img src="swagger-favicon-32x32.png"></a>
      <a class="nav-bar-title"><b>X name</b></a>
      <select class="classic nav-bar-select" id="service-selector" onchange="changeSwaggerUI()">
        <option value="./swagger.json">X service</option>
      </select>
    </div>
    <div style="margin-top: 100px" id="swagger-ui"></div>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.24.2/swagger-ui-bundle.js"> </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.24.2/swagger-ui-standalone-preset.js"> </script>
    <script>
      function changeSwaggerUI(){
        let selected_service_swaggerURL = document.getElementById("service-selector").value;
        loadUI(selected_service_swaggerURL);
      }

      function loadUI(swaggerJsonURL){
        // Begin Swagger UI call region
        const ui = SwaggerUIBundle({
          url: swaggerJsonURL,
          validatorUrl: "",
          dom_id: '#swagger-ui',
          deepLinking: true,
          docExpansion: 'none',
          presets: [
            SwaggerUIBundle.presets.apis,
            SwaggerUIStandalonePreset
          ],
          plugins: [
            CustomTopbarPlugin
          ],
          layout: "StandaloneLayout"
        });
        // End Swagger UI call region

        window.ui = ui
      }

      function CustomTopbarPlugin() {
        // this plugin overrides the Topbar component to return nothing
        return {
          components: {
            Topbar: () => null
          }
        }
      }

      window.onload = function() {
        loadUI("./swagger.json");
      }
  </script>
  </body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Springfox 中更改 Swagger UI index.html 徽标和标题内容? 的相关文章

随机推荐

  • SQL Azure:与 SQL Azure 的连接引发异常

    当我从代码连接到 SQL Azure 时 出现以下错误 我能够从 SQL Server Management Studio 成功连接到 SQL Azure System Data SqlClient SqlException 建立与 SQL
  • 通过 PHP 解析 JavaScript 文件

    我有一个 JavaScript 文件 我想在其中包含一些 php 代码 问题是我在 PHP 上有一些定义 我也想在 JS 上使用它们 有没有办法在 HTML 中包含 js 文件 允许服务器首先使用 php 解释它 在下载到客户端之前 谢谢
  • Numpy 中的结构化数组没有二元运算符吗?

    好的 在学习完 numpy 结构化数组的教程后 我可以创建一些简单的示例 from numpy import array ones names scalar 1d array 2d array formats float64 3 float
  • 我可以将 TLS 与 Send-MailMessage cmdlet 结合使用吗?

    我正在尝试使用 PowerShell 发送电子邮件 但需要使用 TLS 我可以使用 Send MailMessage cmdlet 执行此操作吗 这是我的代码 file c Mail content txt if test path fil
  • 仅从数据库中类似日志的表中读取新行

    我们遇到这样的情况 多台服务器将行块插入关系数据库的表中 而一台服务器偶尔从表中读取新数据 该表在概念上是某种日志文件 数据仅插入但从未修改 读取服务器显示日志的尾部 有没有办法让读取服务器只读取新数据 我们可以按照自己的意愿自由地构建表格
  • Parallel.For 和 Parallel.For 之间有区别吗?

    之间有区别吗TParallel For and TParallel For 两者都可以在 Delphi 10 Seattle 中编译 那么我应该坚持哪一个呢 方法定义为TParallel For需要 符号来转义 areserved word
  • 为什么 gcloud 命令启动缓慢?

    只是打字gcloud如需帮助请花 5 秒钟 gcloud gcloud 0 30s user 0 13s system 7 cpu 5 508 total gcloud version Google Cloud SDK 128 0 0 al
  • 在运行时从不同的文件加载 Properties.Settings

    有没有办法从默认文件以外的其他文件加载设置App config运行时文件 我想在加载默认配置文件后执行此操作 我用Settings SettingsVisual Studio 中的 GUI 来创建我的App config为我归档 配置文件最
  • 带边框/轮廓的六边形形状

    我知道可以使用以下代码创建六边形形状 hex before content width 0 height 0 border bottom 30px solid 6C6 border left 52px solid transparent b
  • 在同一个 apache 服务器上运行 django 和 Flask

    我正在尝试在同一个 apache 服务器上运行 django 和 Flask WSGISocketPrefix var www wsgi
  • 字符串变量可以设置多少个字符?

    我有一个字符串类型的变量 例如string test 我可以设置多少个字符进行测试 谢谢 所有引用类型 如字符串 实例的最大大小是有限的 由 CLR 改为 2GB 由于 NET 中的一个字符占用 2 个字节 这意味着一个字符串最多可以容纳大
  • StreamProvider 不更新状态

    我正在尝试使用StreamProvider from this很棒的包 但我一直在努力让特定的流正常工作 我创建一个StreamController我用它来添加数据Stream通过其Sink 所有这一切似乎都运作良好 但是当使用这个Stre
  • 允许 PHP 会话延续到子域

    我对所有用户数据以及当用户访问其个人资料时使用 PHP 会话 不是 cookie 除了会话 id cookie user mydomain example他们会立即 注销 直到删除子域 有没有办法接受来自所有域的会话 只要它 mydomai
  • Internet Explorer 中的 标记

    既没有标签也不text decoration blink Internet Explorer 支持 css 中的样式 有什么技术可以在 IE 中制作闪烁文本吗 如果可能的话 避免眨眼 这会惹恼别人 但你可以用 JS jQuery 来做到这一
  • ASP.NET Identity 2 支持匿名用户吗?

    我想允许匿名 尚未注册和注册的用户在我的网站上发帖 Posts table Id int Subject nvarchar Body nvarchar UserId uniqueidentifier 该项目使用最新的 MS 技术 ASP N
  • 将 GVim 配色方案更改为类似于命令行 Vim

    是否可以使 GVim 的配色方案与命令行版本 Vim 中的配色方案完全匹配 与白色背景的 GVim 相比 我更喜欢 Vim 的颜色 但我仍然想使用 GVim 因为 Shift 键在命令行版本上映射得不太好 是的 可以使 gvim 与终端 V
  • 感人片段

    任何人都可以建议我为此的算法 您将获得 x 轴上 N 个线段的起点和终点 这些片段中有多少可以被恰好两条垂直于它们的线接触到 即使是在它们的边缘 输入示例 3 5 2 3 1 3 1 5 3 4 4 5 5 1 2 1 3 2 3 1 4
  • 我可以指定 WPF DataGrid 中哪些列是可编辑的吗?

    我有一个带有自动生成列的 WPF 4 0 DataGrid 我只想允许用户编辑第一列 有一个简单的方法可以做到这一点吗 我试图添加 DataGridCell 样式并根据 ColumnName 第一列始终具有相同的名称 或 ColumnInd
  • 强制 IE7 进入标准渲染模式(不是怪癖)

    由于 IE7 在怪异模式下渲染 我在 IE7 中遇到显示问题 我通过显示 document compatMode 并返回 BackCompat 而不是 CSS1Compat 来确认这一点 使用 IE8 并恢复到 IE7 是可行的 因为这样可
  • 如何在 Springfox 中更改 Swagger UI index.html 徽标和标题内容?

    我正在记录使用 Spring Boot 2 4 3 创建的 APIspringfox swagger3 0 0 所以我现在有以下页面 我的客户想要将 Swagger UI 徽标更改为他们自己的 我做不到 我搜索并找到了一些解决方案 但它不起