我使用Spring MVC,並使用UrlFilenameViewController將傳入的URL直接映射到我的View Resolver上,而無需控制器。我正在使用它來讓Freemarker編寫CSS和JS文件,只需在合適的地方放置一個.css.ftl和.js.ftl文件即可。這一切都很好。UrlFilenameViewController在視圖名稱中保留URL擴展
某些瀏覽器在沒有Content-type text/css的情況下返回的.css文件似乎有問題,Freemarker視圖解析程序不允許根據請求的視圖設置響應的內容類型。爲了解決這個問題,我編寫了我自己的ViewResolver,它查看View名稱並基於此設置內容類型 - 因此任何以.css結尾的視圖名稱都將具有文本/ css的內容類型。這一點也很好。
問題是,爲了讓我的視圖名稱爲style.css,我需要實際請求style.css.css,因爲UrlFilenameViewController剝離了擴展名以獲取它正在使用的視圖名稱。如何阻止這種情況發生,以便「/style.css」實際上解析爲「style.css」的視圖,從而解析爲「style.css.ftl」模板?