首页 > 解决方案 > Webjars 不适用于 vert.x 应用程序

问题描述

在 vert.x 应用程序中配置 webjars 的正确方法是什么?我有这个简单的应用程序:

class WebVerticle : CoroutineVerticle() {

  override suspend fun start() {
    val router = Router.router(vertx)

    // Serve static resources from the /assets directory
    router.route("/").handler(StaticHandler.create())

    val json = ConfigRetriever.create(vertx).getConfigAwait()
    val port = json.getInteger("port")
    try {
      vertx.createHttpServer().requestHandler(router).listenAwait(port)
      println("HTTP server started on port $port - redeploy enabled")
    } catch (ex: Exception) {
      error("Could not spawn web server at port $port")
    }
  }
}

pom.xml

<dependency>
    <groupId>io.vertx</groupId>
    <artifactId>vertx-web</artifactId>
    <version>${vertx.version}</version>
</dependency>
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>vue</artifactId>
    <version>2.5.16</version>
</dependency>
</dependencies>
<build>
<plugins>
    <plugin>
    <groupId>io.fabric8</groupId>
    <artifactId>vertx-maven-plugin</artifactId>
    <version>1.0.13</version>
    <executions>
        <execution>
        <id>vmp</id>
        <goals>
            <goal>package</goal>
            <goal>initialize</goal>
        </goals>
        </execution>
    </executions>
    <configuration>
        <redeploy>true</redeploy>
    </configuration>
    </plugin>
</plugins>
</build>

文件结构如下:

src/main/resources/webroot
| index.html

当我击中localhost:8888它时它确实有效,但localhost:8888/vue/vue.js没有。还有什么我需要配置的吗?

标签: vert.xwebjars

解决方案


将路由器配置更改为:

router.route().handler(StaticHandler.create("META-INF/resources"))

然后将浏览器指向:

http://localhost:8888/webjars/vue/2.5.16/vue.js

推荐阅读