css - Grails 过滤器禁用样式/CSS

标签 css grails grails-plugin

我按照“Beginning Grails, Groovy and Griffon”这本书做了一个安全过滤器。

看起来功能正常,但由于某种原因,过滤器允许在没有登录用户的情况下打开的唯一页面缺少任何样式。只是文本字段、标签和按钮。简单的 capthca 插件也可以正常工作,验证码图像加载正常。

页面截图如下:

enter image description here

package collab.todo

class SecurityFilters {

def filters = {
    securityFilters(controller:'*', action:'*') {
        before = {
            if(!session.user && 
                (!controllerName.equals("user") && !actionName.equals("login") 
                    && !actionName.equals("captcha")
                     &&!actionName.equals("register")) ){
                redirect(controller: "user", action: "login")
            }
        }
        after = { Map model ->

        }
        afterView = { Exception e ->

        }
    }
}

最佳答案

您的页面未显示任何 Assets (样式或图像)的原因是因为在最新版本的 Grails (2.3+) 中, Assets 由 /assets/**< 中的 Assets 管道插件提供 网址。

以前版本的 Grails(您的书可能就是为此而写的)没有使用此插件,因此这些 Assets 不可过滤。

要解决此问题,您可以使用过滤器的排除属性(例如 uriExclude)。您可以在优秀的 Grails documentation 中阅读更多相关信息.

下面是使用 uriExclude 的过滤器示例:

package collab.todo

class SecurityFilters {

def filters = {
    securityFilters(controller:'*', action:'*', uriExclude: '/assets/**') {
        before = {
            if(!session.user && 
                (!controllerName.equals("user") && !actionName.equals("login") 
                    && !actionName.equals("captcha")
                     &&!actionName.equals("register")) ){
                redirect(controller: "user", action: "login")
            }
        }
        after = { Map model ->

        }
        afterView = { Exception e ->

        }
    }
}
}

此更改将排除将您的过滤器应用于 /assets/ URI 下的任何内容,并且您的样式/图像现在应该会出现。

关于css - Grails 过滤器禁用样式/CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28230432/

相关文章:

html - 降低文本框高度

html - 如何避免为 ipad 大小的设备加载 CSS 文件 ('between' 移动和全尺寸)?

grails - (grails) com.sun.mail.smtp.SMTPSendFailedException : 553 Relaying disallowed as zoho mail

jquery - 卡塔隆 : Unable to click on object: Web element with id not found

css - IE7/8 修复背景大小 : cover

grails - 在特定时间执行Grails cron作业

hibernate - 方法在 Grails 应用程序之外使用

grails - Grails-异步 Controller Action

grails - grails 中的 jasper 报告

tomcat - Grails 插件安装错误 : java. lang.NoClassDefFoundError: org/grails/plugins/tomcat/fork/ForkedTomcatServer$_findSystemClasspathJars_closure3