【问题标题】:Tuckey Urlrewriter changes url requests for JS & CSS resourcesTuckey Urlrewriter 更改 JS 和 CSS 资源的 url 请求
【发布时间】:2012-10-26 11:55:51
【问题描述】:

我正在试用 Tuckey 的 URLRewriter。

我声明了一个简单的规则,如下:

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

我希望像 myapp.com/user/29 这样的请求被映射到“myapp.com/user.do?id=29”。这工作正常,请求到达支持。然而,在 GUI 上查看响应时,Firebug 抱怨如下:

如您所见,在/roqket/resources 之间现在有一个/user。我不知道那是怎么结束的。如果我删除 &lt;rule&gt; 它会恢复正常的工作资源请求。

你能帮帮我吗?我错过了什么?谢谢!

【问题讨论】:

    标签: java url-rewriting tuckey-urlrewrite-filter


    【解决方案1】:

    你需要为js、style和img定义其他过滤器。

    类似这样的:

    <rule>
        <from>/img/**</from>
        <to>/img/$1</to>
    </rule>
    <rule>
        <from>/js/**</from>
        <to>/js/$1</to>
    </rule>
    <rule>
        <from>/style/**</from>
        <to>/style/$1</to>
    </rule>
    

    这些过滤器应该在您为用户定义的过滤器之前声明。这些规则将在应用于过滤器的规则之前匹配,并且您的问题应该得到解决。

    编辑

    关于您的评论:可以在打印屏幕中看到的那个用户是通过过滤器以某种方式添加的

    我认为这是不正确的,我的意思是,过滤器不是将“用户”添加到过滤器的那个。我认为问题在于您如何导入资源。

    可能,你正在做这样的事情:

    <script type="text/javascript" language="javascript" src="resources/js/lang.js"></script>
    

    在此示例中,查看相对 URI 如何不满足您的应用程序上下文并且不以斜杠开头。当您使用这样的 URL 时,浏览器将在相对于实际路径的路径中查找资源。如果您的浏览器中有http://localhost:8080/roqlet/user,则结果将为http://localhost:8080/roqket/user/theResource(假设“roqket”是您的应用上下文)。

    所以,你应该这样做:

    <c:set var="ctx" value="${pageContext.request.contextPath}"/>
    
    <script type="text/javascript" language="javascript" src="${ctx}/resources/js/lang.js"></script>
    

    现在,您指出上下文,URI 将相对于它而不是实际构建:http://localhost:8080/roqket/theResource

    看看这个doc

    【讨论】:

    • 我尝试了您的解决方案,但我遇到了同样的问题。我不明白为什么这些请求会以任何方式映射到user。它们不包含user 这个词。可以在打印屏幕中看到的user 是由过滤器以某种方式添加的
    • 看看我的版本。我猜你的问题是什么。我希望如此;-)
    • 嗯.. 那是一个令人沮丧的一天一无所获:))。这就是问题所在。谢谢!我永远不会猜到它..
    • 好吧,下次你遇到这个问题的时候,你会很快解决的。所以,你根本没有浪费一天;-)
    【解决方案2】:
    <rule>
    <condition type="request-uri" operator="notequal">\.(images|gif|jpeg|png|css|js|pdf|doc|ico|jsp|jpg)$</condition>
    <from>............
    

    这是停止来自 tuskey url 重写过滤器的请求的方法

    【讨论】:

      猜你喜欢
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 1970-01-01
      相关资源
      最近更新 更多