Rails アプリケーションをオフラインで動作させようとしています。オンラインの場合、アプリケーションは正常に動作しているように見えます。
Chrome では、サーバーが実行されているときに、アプリケーションを実行すると Chrome コンソールからこれが表示されます (一部が切り取られています)。:
Document was loaded from Application Cache with manifest
http://localhost:3000/application.manifest
Application Cache Checking event
Application Cache Downloading event
...
Application Cache Progress event (5 of 16) http://localhost:3000/assets/todos.css.scss
Application Cache Progress event (6 of 16) http://localhost:3000/assets/application.css
Application Cache Progress event (7 of 16) http://localhost:3000/assets/todos.js.coffee
Application Cache Progress event (8 of 16) http://localhost:3000/assets/jquery.tmpl.js
Application Cache Progress event (9 of 16) http://localhost:3000/assets/jquery.offline.js
...
Application Cache Progress event (11 of 16) http://localhost:3000/assets/jquery.js
...
Application Cache Progress event (13 of 16) http://localhost:3000/assets/json.js
Application Cache Progress event (14 of 16) http://localhost:3000/assets/scaffolds.css.scss
Application Cache Progress event (15 of 16) http://localhost:3000/assets/application.js
Application Cache Progress event (16 of 16)
Application Cache UpdateReady event
ただし、オフラインではこれが表示されます(これも一部が切り取られています)。GET
行はロード エラーであることに注意してください。
Document was loaded from Application Cache with manifest http://localhost:3000/application.manifest
Application Cache Checking event
GET http://localhost:3000/assets/application.css?body=1 todos:5
GET http://localhost:3000/assets/scaffolds.css?body=1 todos:6
GET http://localhost:3000/assets/todos.css?body=1 todos:7
GET http://localhost:3000/assets/jquery.js?body=1 todos:8
GET http://localhost:3000/assets/jquery_ujs.js?body=1 todos:8
GET http://localhost:3000/assets/jquery.offline.js?body=1 todos:8
GET http://localhost:3000/assets/jquery.tmpl.js?body=1 todos:8
GET http://localhost:3000/assets/json.js?body=1 todos:8
GET http://localhost:3000/assets/offline.js?body=1 todos:8
GET http://localhost:3000/assets/todos.js?body=1 todos:8
GET http://localhost:3000/assets/application.js?body=1 todos:8
Application Cache Error event: Manifest fetch failed (-1) http://localhost:3000/application.manifest
?body=1
特に、オフライン時にファイル名に が追加されていることに気付きました。
環境:
- レール: 3.2.8
- ルビー 1.9.3p194
- ウェブリック: 1.3.1
- MySQL: 5.5.28 MySQL コミュニティ サーバー
- Chrome: バージョン 22.0.1229.94 m
- OS: Windows 7 Enterprise バージョン 6.1 (ビルド 7601: Service Pack 1)
宝石(私が関連していると思う宝石):
- jquery レール (2.1.3)
- json (1.7.5、1.5.4)
- ラックオフライン (0.6.4)
- スプロケット (2.1.3)
アプリケーション マニフェスト:
CACHE MANIFEST
# ef05db1f746b226b3eb8b3673d65d3585eb8a9e1e35f79a6fc9d90693ff9a569
404.html
422.html
500.html
index.html
assets/application.js
assets/jquery.js
assets/jquery.offline.js
assets/jquery.tmpl.js
assets/json.js
assets/todos.js.coffee
assets/application.css
assets/scaffolds.css.scss
assets/todos.css.scss
NETWORK:
/
application.html.erb :
<!DOCTYPE html>
<html manifest="/application.manifest">
<head>
<title>TestOffsite</title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
todos_controller.erb (抜粋):
class TodosController < ApplicationController
# GET /todos
# GET /todos.json
respond_to :html, :json
def index
@todos = Todo.all
respond_with(@todos)
#respond_to do |format|
# format.html # index.html.erb
# format.json { render json: @todos }
#end
end
...
manifest.yml の内容:
---
rails.png: rails-be8732dac73d845ac5b142c8fb5f9fb0.png
application.js: application-39fb9cbdc400e6885a41059ea60f3851.js
application.css: application-0149f820dbdd285aa65e241569d8c256.css
どんな助けでも大歓迎です。