Rails 4.0--production環境構成の解決cssまたはjsをロードできません
7842 ワード
Rails 4.0--production環境構成の解決cssまたはjsをロードできません
最近production环境を配置して、いくつかのドキュメントを探して、马鹿から苦逼まで~~ついに配置に成功しました~@@!!!
まず、次のプラグインをロードします.
次にconfig/environment/productionを修正する.rb、一部のコードは以下の通りです.
次にconfig/application.rbに次のコードを追加します.
他のファイルを追加する必要がある場合は、上のコードは自分で追加を変更します.
app/assets/javascripts/application.js
次に、サーバを開く前にコマンドラインにrake assets:precompileを入力します.
Railsはassetsのファイルを環境設定に従ってパッケージ圧縮して
注意:このコマンドラインを入力と、cssまたはjsをロードできないことが判明した場合、またはヒントを与える.jsファイルがロードされているのは、フォルダに別のアプリケーションファイルがあるため、中の構成が競合している可能性があります.
次にサーバーを開ければいいです..
構成中、app/assets/imagesに格納されている一部のピクチャはcssに参照されるため、コマンドラインでrake assets:percompileを実行すると、ピクチャのファイル名が暗号化されていることがわかり、cssでピクチャが見つからず、インタフェースが表示されなくなります.
画像パスを変更してapp/assets/imagesのiphoneを読み込ませてみました.png,しかしnot working
サーバーが起動すると、コンソールに画像が読めないエラーメッセージが表示されます.一方、public/assetsの画像はファイル名が暗号化されているため、特定しにくい
その後、自分が怠け者だったので、使う図をpublic/assetsにコピーして、上に貼ったコードをそのままにして、成功しました...
参照リンク:
http://gogojimmy.net/2012/07/03/understand-assets-pipline/
http://ruby-china.org/topics/1415http://ruby-china.org/topics/1414http://ruby-china.org/topics/13216
最近production环境を配置して、いくつかのドキュメントを探して、马鹿から苦逼まで~~ついに配置に成功しました~@@!!!
まず、次のプラグインをロードします.
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'# Use jquery as the JavaScript library
gem 'jquery-rails'
gem 'execjs'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0'
次にconfig/environment/productionを修正する.rb、一部のコードは以下の通りです.
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = true
# Compress JavaScripts and CSS.
config.assets.compress = true
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false
# Generate digests for assets URLs.
config.assets.digest = true
次にconfig/application.rbに次のコードを追加します.
1 config.assets.precompile << Proc.new do |path|
2 if path =~ /\.(css|js|scss|png|jpg|gif|json)\z/
3 full_path = Rails.application.assets.resolve(path).to_path
4 app_assets_path1 = Rails.root.join('app', 'assets').to_path
5 app_assets_path2 = Rails.root.join('public', 'assets').to_path
6 app_assets_path3 = Rails.root.join('vendor', 'assets').to_path
7
8 if full_path.starts_with? app_assets_path1
9 true
10 else
11 if full_path.starts_with? app_assets_path2
12 true
13 else
14 if full_path.starts_with? app_assets_path3
15 true
16 else
17 false
18 end
19 end
20 end
21 end
22 end
他のファイルを追加する必要がある場合は、上のコードは自分で追加を変更します.
app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
次に、サーバを開く前にコマンドラインにrake assets:precompileを入力します.
Railsはassetsのファイルを環境設定に従ってパッケージ圧縮して
public/assets
ディレクトリの下に置き、すべてのファイル名の後にMD 5のfingerprintingを加えてその内容を表すために使用します.注意:このコマンドラインを入力と、cssまたはjsをロードできないことが判明した場合、またはヒントを与える.jsファイルがロードされているのは、フォルダに別のアプリケーションファイルがあるため、中の構成が競合している可能性があります.
次にサーバーを開ければいいです..
構成中、app/assets/imagesに格納されている一部のピクチャはcssに参照されるため、コマンドラインでrake assets:percompileを実行すると、ピクチャのファイル名が暗号化されていることがわかり、cssでピクチャが見つからず、インタフェースが表示されなくなります.
画像パスを変更してapp/assets/imagesのiphoneを読み込ませてみました.png,しかしnot working
サーバーが起動すると、コンソールに画像が読めないエラーメッセージが表示されます.一方、public/assetsの画像はファイル名が暗号化されているため、特定しにくい
その後、自分が怠け者だったので、使う図をpublic/assetsにコピーして、上に貼ったコードをそのままにして、成功しました...
参照リンク:
http://gogojimmy.net/2012/07/03/understand-assets-pipline/
http://ruby-china.org/topics/1415http://ruby-china.org/topics/1414http://ruby-china.org/topics/13216