如何配置 Jetty Server v12 来提供 CSS 和 Javascript 文件

问题描述 投票:0回答:1

这是我之前的问题的后续问题

如果我在 html 文件中这样配置,CSS 文件不会被加载。

<link rel="stylesheet" href="./main.css" type="text/css">

<link rel="stylesheet" href="main.css" type="text/css">

虽然 Edge 和 Chrome 根本没有显示任何错误,但 Firefox 显示此错误消息:

The stylesheet http://localhost:8080/app/main.css was not loaded because its MIME type, “text/html”, is not “text/css”.

在处理程序中,这是如何设置响应标头的:

response.setStatus(200);
response.getHeaders().put(HttpHeader.CONTENT_TYPE, MimeTypes.Type.TEXT_HTML_UTF_8.toString());
Content.Sink.write(response, true, msg, callback);
callback.succeeded();
return true;

我的问题是:如何配置 Jetty Server v12 来提供 CSS 和 Javascript 文件?

提前致谢。

javascript css jetty embedded-jetty jetty-12
1个回答
0
投票

您可以轻松设置 Jetty

ResourceHandler
来从您想要的 url 路径和基本资源提供静态文件。

简单来说,它看起来像这样......

String resourceRoot = // URI string to root of resources
ResourceFactory resourceFactory = ResourceFactory.of(server);
ResourceHandler handler = new ResourceHandler();
handler.setBaseResource(resourceFactory.newResource(resourcesRoot));
handler.setDirAllowed(true);

handlers.addHandler(handler);

resourceRoot
可以是文件系统、类加载器引用,或者通常是 java 支持的任何 URL。

ResourceHandler
可以单独存在,也可以在
ContextHandler
下,甚至是处理程序包装器或选择处理程序的一部分(如
PathMappingsHandler
)。

有关完整示例,请参阅

jetty-examples
项目。

© www.soinside.com 2019 - 2024. All rights reserved.