【问题标题】:Link to css file from Velocity template从 Velocity 模板链接到 css 文件
【发布时间】:2013-07-03 00:09:24
【问题描述】:

我是 servlet 和 Velocity 模板的新手,我正在尝试将我的 .vm 模板链接到一个 .css 文件。 .vm 文件和 css 文件在 Tomcat 的 ROOT 目录下。文件本身显示正常,但 css 不起作用。

以下链接失效:

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

也不将文件名作为属性传递:

String stylesheet = "style.css";
req.setAttribute("stylesheet", stylesheet);

然后这样引用:

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

另外,我无法在浏览器中调出 css 文件,即使它确实存在。

web.xml 包含以下内容:

<!-- register servlet -->
<servlet>
    <servlet-name>testvmservlet</servlet-name>
    <servlet-class>net.myapp.app.TestVMServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>testvmservlet</servlet-name>
    <url-pattern>/velocity.service</url-pattern>
</servlet-mapping>

<!-- mapping all .vm files to velocity servlets -->
<servlet>
    <servlet-name>velocity</servlet-name>
    <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>

</servlet>
<servlet-mapping>
    <servlet-name>velocity</servlet-name>
    <url-pattern>*.vm</url-pattern>
</servlet-mapping>

我需要引用相对于应用程序还是相对于 Velocity 的 css 文件?

我已经从以下位置调整了我的一个 servlet 映射:

<servlet-mapping>
    <servlet-name>startupservlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

到:

<servlet-mapping>
    <servlet-name>startupservlet</servlet-name>
    <url-pattern>/foo</url-pattern>
</servlet-mapping>

现在 css 工作正常。但我不确定为什么这个映射会产生影响。

据我了解,&lt;url-pattern&gt;/&lt;/url-pattern&gt; 仅适用于未指定路径的情况,但是,对 style.css 的请求应该构成路径吗?

【问题讨论】:

    标签: java tomcat web-applications velocity


    【解决方案1】:

    我相信你的问题是 servlet 映射到 /

    默认情况下,Tomcat 将 / 映射到提供静态内容的 DefaultServlet。当您将 / 映射到您的 servlet 时,它似乎会覆盖整个 DefaultServlet 行为。它充当 /* 映射,尽管它看起来应该只处理 /

    我不确定这是错误还是功能。 :)

    一种解决方案可能是将您的 /servlet 映射更改为 /home,然后使用欢迎文件映射来引用它。

    【讨论】:

      猜你喜欢
      • 2020-02-26
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      相关资源
      最近更新 更多