HTML5 アプリケーション キャッシュを使用しようとしている Web アプリを開発しています。
ファイルを正常にキャッシュし、オンライン中に AppCache からファイルをロードできます。しかし、オフラインにすると、すべての css および js ファイルが application/x-javascript または text/css ではなく、text/html という MIME タイプで転送されるため、オフラインで正しく動作しません。
これは、オフライン中にページをリクエストしたときに得られるものです。
Application Cache Error event: Manifest fetch failed (-1) https://example.com/manifest
Resource interpreted as Stylesheet but transferred with MIME type text/html: "https://example.com/offline_assets/stylesheets/cache/offline_all.css".
Resource interpreted as Script but transferred with MIME type text/html: "https://example.com/javascripts/offline/respond.min.js".
Resource interpreted as Script but transferred with MIME type text/html: "https://example.com/javascripts/yui3/3.1.1/build/yui/yui-min.js".
Resource interpreted as Script but transferred with MIME type text/html: "https://example.com/offline_assets/sprockets.js".
したがって、ページはスタイル設定されておらず、あらゆる種類の JS エラーが発生しています。
css および js ファイルがオフライン中に appcache から適切な MIME タイプで転送されるように適切に設定するにはどうすればよいですか? あなたの提案に感謝します
更新:これは、サーバーでマニフェストファイルを提供する方法です
class ManifestController < ApplicationController
def show
headers['Content-Type'] = 'text/cache-manifest'
render :text => File.open("#{RAILS_ROOT}/public/manifest.appcache").read, :layout => false
end
end
この検証テストに合格しました: http://manifest-validator.com/
ここに私のマニフェストファイルがあります:
CACHE MANIFEST
#<
/offline_assets/stylesheets/cache/offline_all.css
/offline_assets/fonts/websymbols-regular-webfont.woff
/offline_assets/javascripts/yui3/3.1.1/build/yui/yui-min.js
/offline_assets/sprockets.js
/offline_assets/javascripts/offline/respond.min.js
/offline_assets/images/logoClio.png
/offline_assets/images/search/icoSearch.png
/offline_assets/images/icoArrow-down.png
/offline_assets/images/gold/submenu_current.png
/offline_assets/images/calendar/left_arrow.gif
/offline_assets/images/calendar/right_arrow.gif
/offline_assets/images/calendar/left_arrow_on.gif
/offline_assets/images/calendar/right_arrow_on.gif
/offline_assets/images/calendar-lg.gif
/offline_assets/images/logo-tagline.gif
/offline_assets/images/icoRecent-matter.png
/offline_assets/images/icoRecent-contact.png
/offline_assets/stylesheets/yui/dt-arrow-dn.png
/offline_assets/stylesheets/cache/sprite.png
/offline_assets/images/timer_stop.png
/offline_assets/images/add3.png
/offline_assets/images/arrow_down.gif
/offline_assets/images/spinner.gif
/offline_assets/images/timer_start.png
/offline_assets/images/delete.png
/offline_assets/images/offline/logoClio.png
/offline_assets/images/offline/bgSteps-1.png
/offline_assets/images/offline/bgSteps-2.png
/offline_assets/images/offline/bgSteps-3.png
/offline_assets/images/offline/icoReload.png
/offline_assets/images/offline/dt-arrow-dn.png
/offline_assets/images/offline/sprite.png
#>
# offline.html will be displayed if the user is offline and attempt to get uncached pages
FALLBACK:
/ /offline.html
# All other resources (e.g. sites) require the user to be online.
NETWORK:
*
これは、chrome://appcache-internals/ の MIME タイプとその他の詳細を示すキャッシュ ファイルの 1 つです。
https://staging.goclio.com/offline_assets/sprockets.js?cec750eb3581f3d9f78c97d0ad8331df
HTTP/1.1 200 OK
Server: nginx/0.8.55
Date: Fri, 09 Mar 2012 19:56:17 GMT
Content-Type: application/x-javascript
Last-Modified: Fri, 09 Mar 2012 19:51:10 GMT
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
X-Backend-Server: 333963-web02.rs.goclio.com:81
Accept-Ranges: bytes
Vary: Accept-Encoding, User-Agent
Content-Encoding: gzip
別の更新: これは、MIME タイプのエラーが発生することなく、Firefox で正常に動作します。なおや