How to Modify the StrongLoop's LoopBack Explorer CSS

落花浮王杯 提交于 2019-12-17 19:16:42

问题


We're using Strongloop's LoopBack for our REST APIs and would like to modify the CSS for the LoopBack Explorer. However, it's not clear which CSS files are being used (LoopBack vs Swagger) and where they're located. I was not able to find specific documentation for this.


回答1:


You can provide your own version of Swagger UI files via options.uiDirs.

  1. Edit your server/server.js and add this config option to the explorer:

    app.use(explorer(app, { uiDirs: path.resolve(__dirname, 'explorer') }));
    
  2. Copy the directory node_modules/loopback-explorer/public/css to server/explorer/css

  3. Customize the copied CSS files as you need.

You should lock loopback-explorer's major & minor version in your package.json. Newer versions of loopback-explorer may change the CSS in which case your customization may stop working.




回答2:


You can modify more than just the css. And also, if you generate your Loopback application using slc loopback like I did, you'll find that your server/server.js doesn't look immediately in a way you can configure it like it's shown in the accepted answer.

Instead you can use server/component-config.json to instruct the loopback component explorer to use an alternative directory for static files for the swagger-ui. With the uiDirs configuration below I configured it to go look for static files in the server/explorer directory.

{
  "loopback-component-explorer": {
    "mountPath": "/explorer",
    "uiDirs": "server/explorer",
    "apiInfo": {
      "title": "My API",
      "description": "Description of my API"
    }
  }
}

* When using IISNode uiDirs has to be set to "explorer" otherwise it's "server/explorer" as per @phegde 's comment

In my server directory I created a index.html which is a copy from node_modules/loopback-component-explorer/public/index.html and also I created an images folder with a custom logo.

And finally, If you want to have custom css, copy node_modules/loopback-component-explorer/public/css/loopbackStyles.css into server/explorer/css/loopbackStyles.css




回答3:


If you didn't lock the loopback-explorer in package.json or if you started your application from the new release of loopback(v2.x), you have to make another change:

  1. If you generated your loopback app with the generator tool, edit server/component-config.json and change it to this:

    { "loopback-component-explorer": null }

2.Copy the directory node_modules/loopback-explorer/public/ to server/explorer/ as Miroslav said. If you copy the whole directory you can also change the index.html file.

  1. Edit server/server.js file and add this line: app.use('/explorer',explorer.routes(app, { uiDirs: path.resolve(__dirname, 'explorer') })); also you have to add the explorer module at the top of the file: var explorer = require('loopback-component-explorer');

4.Customize the ui of your explorer, all the necessary files are in server/explorer




回答4:


With the loopback-component-explorer the uiDirs defined in component-config.json should be added something like the below (which solved my issue).

"uiDirs": ["server/explorer"]

instead of

"uiDirs": "server/api-explorer",



回答5:


I am able to apply custom css styles to loopback api explorer header.

Steps I followed as mentioned below

  1. Goto node_modules > loopback-component-explorer > public > css folder
  2. Copy loopbackStyles.css
  3. Create a new folder called explorer under server folder
  4. create css folder under explorer and paste the css file under css folder i.e., loopbackStyles.css
  5. Add below config to component-config.json file
{
  "loopback-component-explorer": {
    "mountPath": "/explorer",
    "generateOperationScopedModels": true,
    "uiDirs": "server/explorer"
  }
}

To change loopback header color I have just overrided backgroun-color with my own color in body #header css selector in loopbackStyles.css

To replace the default header logo name with our custom name. I have added following css styles in loopbackStyles.css

.swagger-ui-wrap #logo{
  display: none;
}
.swagger-ui-wrap:after { 
  content: "MyOwn API Explorer";
  color: #fff;
  font-weight: bold; 
}


来源:https://stackoverflow.com/questions/28073421/how-to-modify-the-strongloops-loopback-explorer-css

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!