J'ai la classe Verticle suivante:vert.x Serve fichiers statiques
public class SendFileExample extends AbstractVerticle {
public void start(Future<Void> fut) throws Exception {
Router router = Router.router(vertx);
router.route("/hello").handler(StaticHandler.create("client"));
router.route("/hello").handler(routingContext -> {
HttpServerResponse response = routingContext.response();
System.out.println("Hello");
response.sendFile("client/index.html");
});
vertx.createHttpServer().requestHandler(router::accept).listen(3000,
result -> {
if (result.succeeded()) {
fut.complete();
} else {
fut.fail(result.cause());
}
}
);
}
}
Mon fichier html est:
<html>
<head>
<title> hello </title>
</heade>
<body>
<h1> Hello World </h1>
<button> Hello </button>
<script src="app.js"></script>
</body>
</html>
je "StaticHandler.create ..." afin de servir tous fichiers statiques dans le dossier du client. Comme vous pouvez le comprendre, je veux qu'une fois que le serveur reçoit une requête GET à "localhost: 3000/hello", le client recevra une page HTML, qui appellera le fichier app.js.
Malheureusement, je ne peux pas le faire. index.html est chargé et le navigateur ne peut pas charger app.js.
Il est important de noter que index.html et app.js se trouvent exactement dans le même chemin que $ {PROJECT_ROOT}/client.
Le code se trouve cependant dans: $ {PROJECT_ROOT}/src/main/java/com/company.
désolé. Ça ne marche toujours pas. Cela a-t-il fonctionné pour vous? – CrazySynthax
imprimez les chemins et vérifiez s'ils correspondent à votre fichier. Vous pouvez également vérifier l'existence des fichiers – injecteer
'System.out.println (" path = "+ req.path());' – injecteer