1

データをオフラインで保存するキャッシュ マニフェストを使用して iPad 用の grails 1.3.7 を使用して 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なのか、私は本当に混乱しています。クロムで動作します。

4

2 に答える 2

2

ちょっと私は、MIME タイプが Grails で設定されていないことがわかった解決策を手に入れました....Grails で MIME タイプを設定するには、別の方法に従う必要があります (しかし、なぜ chrome が 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を作成し、必要なコードを追加します...これが役立つことを願っています

于 2012-05-08T10:47:14.897 に答える
0

ファイルを変更するのではなく、オブジェクトweb.xmlを介してコントローラー アクションから HTTP コンテンツ タイプ ヘッダーを直接設定することもできます。HTTPResponse

response.contentType = "text/cache-manifest"

内のgrails.mime.typesブロックはコンテンツ ネゴシエーションConfig.groovy中に使用され、インバウンドの Accepts ヘッダーに基づいて、要求に対してさまざまな応答をより簡単に送り返すことができるようにします。

于 2012-05-08T12:24:52.043 に答える