使用URLRewriteFilter CSS和JS未加载

时间:2016-01-17 07:27:11

标签: javascript css url-rewriting tuckey-urlrewrite-filter

我正在使用URLRewriteFilter清理URL。我让它工作,但css和js文件没有正确链接。

认为我的项目是演示。

这是我的urlrewrite.xml文件:

<rule>
    <from>^/([0-9]+)$</from>
    <to>/test.jsp?id=$1</to>
</rule>

所以,当我去http://localhost:8080/demo/1234

它会将我转发给test.jsp,我可以获得参数id

但是没有加载css样式表和js脚本。所有css和js文件都在项目的/ css和/ js文件夹中。

以下是css和js脚本:

<script type="text/javascript" src="js/jquery-ui.min.js"></script>
<link rel="stylesheet" href="css/jquery-ui.min.css" type="text/css"/>

我添加了条件,但不确定它是否正确。

条件:

<rule>
    <condition type="request-uri">^(?!.*\.?:jpg|png|css|js)$).*$</condition>
    <from>^/(.*).css$</from>
    <to>/css/$1.css</to>
</rule>

有人可以让我知道我需要做什么。一些代码示例对我有很大的帮助。

由于

1 个答案:

答案 0 :(得分:0)

这是因为URLRewriteFilter会将网址转发到您的实际位置,因此问题在于您更改网址的路径,并按照网址在新路径上搜索js,css和所有其他资源。

<script type="text/javascript" src="js/jquery-ui.min.js"></script>
<link rel="stylesheet" href="css/jquery-ui.min.css" type="text/css"/>

您只需将上下文路径放在此处即可。如果您的css和js位于相应项目上下文路径下的命名文件夹中。

<script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery-ui.min.js"></script>
<link rel="stylesheet" href="<%=request.getContextPath() %>/css/jquery-ui.min.css" type="text/css"/>