1

Heroku で動作するようにアプリケーションを構成しましたが、問題が発生しています。開発モードで、CSS の一部を変更してブラウザを更新すると、CSS が読み込まれません。

ログを確認したところ、application.css が読み込まれません。開発モードで毎回ロードする必要があります。また、私の application.js が機能しなくなりましたが、その理由がわかりません。

開発.rb:

  # Do not compress assets
  config.assets.compress = false
  config.assets.precompile += %w( login.css )

  # Expands the lines which load the assets
  config.assets.debug = true

環境.rb:

  config.active_record.whitelist_attributes = true

   # Enable the asset pipeline
   config.assets.enabled = true

   # Version of your assets, change this if you want to expire all your assets
   config.assets.version = '1.0'

   config.assets.initialize_on_precompile = true

を使用してアセットを手動でコンパイルする$ rake assets:precompile RAILS_ENV=developmentと、application.js コードを除いて機能します。

//= require jquery
//= require jquery_ujs
//= require_tree .
//= require jquery.reveal
$(document).ajaxStart(function() {
    $( "#load_img" ).animate({
            height:"toggle",
      opacity:"toggle"
        });
});

$(document).ajaxSuccess(function() {
    $( "#load_img" ).fadeOut('fast');
});

$(document).ready(function() {
  setTimeout(
    function() {
      $("#flash_messages").fadeOut(3000)
    }, 
    2500);
});

Heroku にデプロイする前は、すべてが機能していました。

4

3 に答える 3

4

application.jsファイル自体は必要ありません。次のようにrequire_selfを使用します。

//= require jquery
...
//= require_self

$(function() {});

application.jsまた、インクルードの終わりとファイル自体のコードの始まりの間に改行があるはずです。

また、この行:

config.assets.precompile += %w( login.css )

Herokuにデプロイする前に開発モードでアセットを手動でプリコンパイルしている場合は問題ではありませんが、おそらく、application.rbだけでなく、にあるはずです。development.rb

于 2013-02-15T23:37:41.903 に答える
2

開発中の変更を確認したい場合は、アセットをプリコンパイルしないでください。プリコンパイルを元に戻すには、 を試してくださいrake assets:clean。また、マニフェスト ファイルに js コードを含めるのは適切なスタイルではありませんapplication.js。に新しいファイルを作成し、app/assets/javascripts/そこにコードを移動します。

于 2013-02-15T23:53:19.080 に答える
0

開発中にアセットをプリコンパイルするということは、行った変更を確認するためにアセットをプリコンパイルし続ける必要があることを意味します。

アセットをプリコンパイルすると、 に静的 css ファイルが作成されpublic/assetsます。Web サーバーはpublic/assets、アセット パイプラインで新しいファイルを検索する前に、常に静的アセット (たとえば、 にあるもの) を提供します。

手動で空にするpublic/assetsか、 を呼び出して、プリコンパイル済みファイルを消去しますrake assets:clean

Heroku にデプロイすると、デプロイ時にアセットが自動的にコンパイルされます。

于 2013-02-16T07:35:52.893 に答える