Reputation: 31
I am trying to create a web application using grails 1.3.7 for iPad using a cache manifest to save the data offline. I got offline data working very fine in Chrome but in Safari, iPad and Mozilla it is giving an error saying the Application Cache manifest has an incorrect MIME type: text/plain
. I have set mime type in Config.groovy
as follows:
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'
]
But still the other browsers do not accept it. I am really confused whether this is a html5 problem or grails. It works in chrome.
Upvotes: 1
Views: 1248
Reputation: 31290
Rather than modify the web.xml
file, you can also simply set the HTTP content type header directly from your controller action via the HTTPResponse
object:
response.contentType = "text/cache-manifest"
The grails.mime.types
block in Config.groovy
is used during content negotiation to allow you to more easily send back different responses to a request based on the inbound Accepts header.
Upvotes: 0
Reputation: 31
Hey I got the solution I found out that mime type was not set in grails....In grails to set the mime type a different way is to be follwed (But still I wonder why chrome was working without mime type)............To set the mime type in grails we have to create a web.xml and add the following code to it...
<mime-mapping>
<extension>manifest</extension>
<mime-type>text/cache-manifest</mime-type>
</mime-mapping>
But in grails web.xml is created only at the time when war is build....So to create a web.xml which can be merged with original web.xml do the following
In the command line type
grails install-templates
Now in your project folder src/templates/war is created. in the war folder create the web.xml and add the code you need... hope this will help
Upvotes: 2