你怎麼UrlMappings當您添加的路由這樣Grails的路線 - 忽略CSS,JS和圖像
UPDATE忽略/ CSS,/ JS和/圖像
"$username"(controller:"profile",action:"show") {
constraints {
username(notInList:['css','js','images'])
}
}
燦我使用notInList?我該如何反轉inList?
你怎麼UrlMappings當您添加的路由這樣Grails的路線 - 忽略CSS,JS和圖像
UPDATE忽略/ CSS,/ JS和/圖像
"$username"(controller:"profile",action:"show") {
constraints {
username(notInList:['css','js','images'])
}
}
燦我使用notInList?我該如何反轉inList?
如果使用通配符URL映射,那麼你可能需要排除從Grails的URL映射過程一定的URI。要做到這一點,你可以提供一個不包括UrlMappings.groovy類的內部設置:
class UrlMappings = {
static excludes = ["/images/*", "/css/*"]
static mappings = {
…
}
}
這允許您從映射中排除目錄。
更新如果你想使用正則表達式,這可能會更好地工作:
constraints {
username(matches:"^(?!(js|css|images)/).*")
}
此正則表達式匹配任何不開始與js/
,css/
,或images/
。它通過零寬度負前瞻匹配((?!…)
謝謝不要知道我是如何錯過的,好奇,爲什麼我的代碼失敗了,這是除了500錯誤路由之外,我的UrlMapping.groovy文件中的最後一個路由,不應該有一個約束阻止它被處理。正則表達式正確 – BuddyJoe
其實,你的正則表達式*只匹配以'css','js'或'images'開頭的東西,一個更好的正則表達式就是'^(!!(js | css | images)/)。 ' - 這是一個負面的前瞻,不匹配'js /','css /'或'images /',但它允許*開頭* js,css或圖像的字符串。 – OverZealous
aww是的。很好的接收。謝謝+1要使用排除。更容易。 – BuddyJoe
無法得到這個工作,要麼 - 約束。{ 用戶名(比賽: 「^ CSS |^JS | ^圖像」) } – BuddyJoe