【问题标题】:Weird Filter behavior奇怪的过滤器行为
【发布时间】:2013-05-08 20:07:15
【问题描述】:

我在 grails-app/view 下创建了一个名为“content”的文件夹,并从那里提供所有不需要控制器操作的 gsp 文件。

为了服务于这个视图,我添加了一个 UrlMapping "/content/$view"(controller:"content")。这使我能够直接调用 /my-app/content/staticGSP 而无需实际的 ContentController。这在一段时间内运行良好,没有任何问题。

今天,我想添加一个过滤器,它可以直接重定向到内容文件夹下的视图。我在 MYFilter 中添加了一个 before 闭包。

  all(controller: "*") { 
       before = { 
             if(onSomeCond){ 
                 redirect(controller: 'content', action: 'seamless') 
                 return false 
             } 
            return true 
        } 
   } 

如果我尝试使用 Url http://localhost:8080/my-app/home/index,此过滤器可以正常工作。在这里,我的应用程序中有一个 HomeController。 但是,如果我尝试http://localhost:8080/my-app/content/anotherview,那么过滤器只会以 404 响应。我无法弄清楚这是为什么。

任何见解都会非常有帮助。

谢谢, 阿比吉特

【问题讨论】:

    标签: grails grails-filters


    【解决方案1】:

    显然 http://localhost:8080/my-app/content/anotherview 匹配 url 映射 "/content/$view"(controller:"content") 并且您在 static 文件夹中没有视图 anotherviewanotherviewcontent 文件夹内。因此,404。

    您为静态内容添加的文件夹名称是content 还是static?你的问题是static

    【讨论】:

    • 道歉。文件夹名称是“内容”。我已经更新了问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多