2

Ruby on Railsガイド:キャッシングによると、開発およびテスト環境では、キャッシングはデフォルトで無効になっています。CSSを少し変更し、でrails server自分のサイトを実行してアクセスするとlocalhost:3000、変更を確認できます。ただし、iPhoneでRailsサーバーにアクセスすると10.0.1.2:3000、シークレットモードのChromeでも、CSSは更新されません。キャッシュが空の別のiPhoneを試してみると、変更があります。

同じ問題を説明しているスタックオーバーフローの投稿を見つけました。提案された解決策は次のとおりです。

  • ディレクトリを削除しpublic/assetsます。持っていません。
  • に追加config.serve_static_assets = falseenvironments/development.rbます。すでにそこにあります。
  • サーバーを削除/tmp/cache/assets、追加、再起動します。私はこれを試しましたが、うまくいきませんでした。config.serve_static_assets = falseenvironments/development.rb

これが私の関連するenvironments/development.rb設定です:

# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false

# Show full error reports and disable caching
config.consider_all_requests_local       = true
config.action_controller.perform_caching = false
4

4 に答える 4

5

Railsは本番環境でのみフィンガープリントを実行するため、これが発生していると確信しています:http: //guides.rubyonrails.org/asset_pipeline.html#in-production

これは、よりキャッシュアグレッシブな開発ブラウザでこの問題が発生する可能性があることを意味します。

これをdevelopment.rbに追加してみてください。

config.assets.digest = true

または、モバイル開発を行う場合の条件付きのものがより望ましい

# One of the few exceptions I'd make to a no ENV variables rule 
# for my rails environment config files
config.assets.digest = true if ENV["MOBILE_DEBUG"]
于 2013-01-13T23:44:52.477 に答える
0

iPhoneを介してローカルマシンにアクセスする方法を教えてください。

ネットワーク設定を構成したか、別のサーバーにプッシュしてそこからアクセスしましたか。別のサーバーに接続している場合は、サーバーが本番モードで実行されている可能性があるためです。

HTH

于 2013-01-06T07:05:31.550 に答える
0

テストするiPhoneはありませんが、通常のブラウザのキャッシュの問題のようです。ブラウザのキャッシュをクリアするには、次の手順を試してください。それが機能する場合は、CSS(またはJ

于 2013-01-08T17:13:31.370 に答える
0

私も同様の問題を抱えていました。config/environments/development.rb私が封じ込めていたのでそれは起こりましたconfig.asset_host = 'http://localhost:3000'

私はそれを削除しました、そしてすべてはうまく働きます。

于 2015-11-18T13:16:42.243 に答える