2010-06-27 65 views
4

在Grails 1.3.1應用程序中,我想要404錯誤導致呈現「list」控制器的主索引操作。此控制器在佈局目錄(views/layouts/list.gsp)中使用常規佈局文件,然後使用該操作的包含片段(views/list/index.gsp)。Grails佈局未應用於404 UrlMapping

正常訪問此操作(http://localhost/list/index)時,將應用佈局文件和代碼段,並且它看起來是正確的。但是,當通過UrlMapping類中的404規則(「404」(controller:「list」,action:「index」))訪問時,不使用佈局文件,只顯示片段。

有誰知道爲什麼會發生這種情況,並且如果有任何方法可以使常規佈局顯示爲404(或其他)錯誤映射?

+1

這對Grails 2.1.0來說似乎也是個問題...... – Tristan 2012-09-08 05:03:47

+0

@Tristan,你是否曾經能夠爲你的問題找到解決方法? – Igor 2015-01-13 15:46:38

+1

@Igor我不認爲我這樣做了(最終放棄了Grails)。 – Tristan 2015-01-13 19:02:15

回答

1

你肯定不適用的佈局?我正在使用Grails 1.3.2和I 認爲佈局未應用,但實際上是在佈局之後缺少模型和安全標記。404。

如果您的佈局內容是從這樣的東西可用,請先嚐試一個「Hello World」,看看它是否顯示。

5

我知道一段時間後,這是SiteMesh Grails正在使用的版本中的一個錯誤。有一個解決辦法,你可以換你的錯誤頁面,而不是使用通常的

<g:applyLayout name="main"> 
</g:applyLayout> 

<meta name="layout" content="main" /> 
2

要尋找的另一件事是sitemesh.xml配置文件。 Sitemesh根據響應的內容類型開啓/關閉,並且此文件聲明站點網格將處理的內容類型值。在我的情況下,text/html;charset=UTF-8的條目不足以處理類型text/html的響應。