Html5 Mime在grails中输入错误
我正在尝试使用grails 1.3.7 for iPad使用缓存清单来离线保存数据来创建Web应用程序。 我在Chrome中获得了离线数据,但在Safari,iPad和Mozilla中,它提供了一个错误消息,说明应用程序缓存清单具有不正确的MIME类型: text/plain
。 我已经在Config.groovy
设置了MIME类型,如下所示:
grails.mime.types = [ html: ['text/html','application/xhtml+xml'],
xml: ['text/xml', 'application/xml'],
text: 'text/plain',
js: 'text/javascript',
rss: 'application/rss+xml',
atom: 'application/atom+xml',
css: 'text/css',
csv: 'text/csv',
all: '*/*',
json: ['application/json','text/json'],
form: 'application/x-www-form-urlencoded',
multipartForm: 'multipart/form-data',
manifest: 'text/cache-manifest'
]
但其他浏览器仍然不接受它。 我很困惑这是一个html5问题还是grails。 它在铬中工作。
嘿,我得到了解决方案,我发现MIME类型没有在grails中设置....在grails中设置MIME类型的另一种方式是(但我仍然想知道为什么铬没有MIME类型)... .........要在grails中设置mime类型,我们必须创建一个web.xml并添加下面的代码给它...
<mime-mapping>
<extension>manifest</extension>
<mime-type>text/cache-manifest</mime-type>
</mime-mapping>
但是在grails中,web.xml只是在构建war的时候创建的....所以要创建一个可以与原始web.xml合并的web.xml,请执行以下操作
在命令行中键入
grails install-templates
现在在你的项目文件夹中创建src / templates / war。 在war文件夹中创建web.xml并添加你需要的代码......希望这会有所帮助
您可以直接通过HTTPResponse
对象从控制器操作中直接设置HTTP内容类型头,而不是修改web.xml
文件:
response.contentType = "text/cache-manifest"
Config.groovy
的grails.mime.types
块在内容协商期间用于允许您更轻松地根据入站Accepts头返回不同的响应。