2

jquery_mobile_rails にはバージョン 1.3.0 しか含まれていないため、独自の jQuery モバイル ファイルをホストすることにしましたが、常に最新バージョンの jQM を使用できるようにしたいと考えています。javascripts の下に js ファイルを追加し、assets フォルダーの stylesheets の下に css ファイルを追加しただけなので、これは驚くほど簡単でした。

アイコン ボタンを /assets/images と /assets/stylesheets/images の両方にコピーしました。それらは開発では適切に表示されますが、本番環境では表示されません。私のコンソールは、プリコンパイルされているイメージを表示しています。

私は production.rb に以下を持っています

config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif application-print.css)
4

1 に答える 1

2

Rails 3.2では、プリコンパイル時にフィンガープリントpicture-df71a1234da231a124a.png付き ( ) とフィンガープリントなし( ) の両方のpicture.pngアセットが生成されますが、Rails 4 ではフィンガープリントなしのバージョンは生成されなくなりました。

ほとんどの場合、jQuery Mobile の CSS ファイルには次のような参照が含まれています。

background-image: url(images/icons-18-white.png)

問題は、CSS ファイルがフィンガープリントがどうあるべきか見当がつかないことです。最善の解決策は、Rails のアセット パス ヘルパーを使用することです。最初に、ファイルが SCSS ファイルであることを確認します (名前を変更して のようにしますjquery.mobile-1.3.1.css.scss)。これにより、Rails は Sass を使用してコンパイルするように指示されます。

次に、url(...)css ファイルのすべてのエントリをに変更しますimage-url(...)。パスを引用符で囲んでください。たとえば、これはファイルをロードしますapp/assets/images/images/icons-18-white.pngpublic/assets/images/icons-18-white.png本番環境になります)。

background-image: image-url("images/icons-18-white.png")

これらの変更をデプロイすると、jQuery モバイル css ファイルがプリコンパイルされ、結果のファイルに適切なフィンガープリント URL が含まれるはずです。

于 2013-07-12T05:57:28.087 に答える