Java 在rest应用程序jax rs、maven项目中添加外部文件(.css、.js、ecc)
早上好, 我正在使用JAX-RS创建一个REST应用程序,我正在使用maven。不幸的是,关于这个话题的另一个问题我不太明白 我创建了一个.css文件,必须链接该文件才能输出web应用程序。对于html部分,我没有编写“纯”html代码,但我使用的是RenderSnake API,当我尝试添加外部css时,我不了解我必须添加的路径 有人能解释一下我必须在哪个文件夹中添加文件吗? 我是否向pom.xml文件中添加了一些内容? 我做错什么了吗Java 在rest应用程序jax rs、maven项目中添加外部文件(.css、.js、ecc),java,css,rest,maven,jax-rs,Java,Css,Rest,Maven,Jax Rs,早上好, 我正在使用JAX-RS创建一个REST应用程序,我正在使用maven。不幸的是,关于这个话题的另一个问题我不太明白 我创建了一个.css文件,必须链接该文件才能输出web应用程序。对于html部分,我没有编写“纯”html代码,但我使用的是RenderSnake API,当我尝试添加外部css时,我不了解我必须添加的路径 有人能解释一下我必须在哪个文件夹中添加文件吗? 我是否向pom.xml文件中添加了一些内容? 我做错什么了吗 谢谢大家! 通常,您会将这些罚款(.html、.css等
谢谢大家! 通常,您会将这些罚款(.html、.css等)添加到
/src/main/webapp
或某个子文件夹(在您的情况下是/src/main/webapp/assets/stylesheets
)中,然后使用
<link rel="stylesheet" type="text/css" href="assets/stylesheets/mystyle.css">
(当然,这是来自示例页面,根据需要进行更改)。您是在构建
war
还是jar
?谢谢您的回答。我试图做到这一点:我创建了一个名为assets的文件夹,其中包含一个名为stylesheets的子文件夹,并将文件mystyle.css放在那里。当我执行我的应用程序时,在页面的源代码中我看到“”,但找不到资源,错误404:我在检查器中看到了thet。我不知道为什么找不到该资源。这不起作用href=“/css/mystyle.css”
假设应用程序位于服务器根目录下,而它可能不在。您需要使用模板引擎来提供适当的上下文路径。@BoristheSpider您是对的,最好不要使用标题/
,尽管您必须考虑html和css文件之间的相对路径。这真的不是问题。只有在引用CSS的文件位于应用程序根目录中时,相对路径才起作用。如果您要从http://server.com/context/admin/main.jsp
例如,它会假定您的意思是http://server.com/context/admin/css/mystyle.css
-这也不起作用。正如我所说,您需要在模板中使用适当的指令来生成包含上下文的绝对路径-例如。@BoristheSpider,我知道,请参见编辑。无论如何,在这种情况下,您可以像在任何文件系统上一样使用路径,例如,如果您将html文件放入/src/main/webapp/html
,那么您将使用。/css/my.css
引用样式表
public class CssRenderable implements Renderable {
public void renderOn(HtmlCanvas html) throws IOException {
String host = RequestUtils.getHeaderValue(html, "HOST");
if(host.startsWith("localhost"))
return;
html.write(StringResource.get("assets/stylesheets/mystyle.css"),NO_ESCAPE);
}
}