我正在尝试使用iPad的grails 1.3.7创建一个Web应用程序,并使用缓存 list 将数据离线保存。我的脱机数据在Chrome中工作得很好,但是在Safari,iPad和Mozilla中,它给出了一个错误,提示应用程序缓存 list 的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。它适用于Chrome。

最佳答案

嘿,我找到了解决方案,我发现没有在grails中设置mime类型....在grails中设置mime类型时,应该采用一种不同的方式(但是我仍然想知道为什么chrome在没有mime类型的情况下仍然可以工作)... .........要在grails中设置mime类型,我们必须创建一个web.xml并向其中添加以下代码...

<mime-mapping>
    <extension>manifest</extension>
    <mime-type>text/cache-manifest</mime-type>
</mime-mapping>

但是在grails中,仅在建立 war 时才创建web.xml。因此,要创建可与原始web.xml合并的web.xml,请执行以下操作

在命令行中输入
grails install-templates

现在在您的项目文件夹中创建src / templates / war。在war文件夹中,创建web.xml并添加所需的代码...希望这会有所帮助

10-06 01:15