0

Heroku で Rails アプリをセットアップしていますが、すべての CSS アセットが読み込まれているのに JS アセットが読み込まれていないという問題が発生しています。私は memcached を使用しており、https ://devcenter.heroku.com/articles/rack-cache-memcached-rails31 の指示に従いました。

私が気づいたことの 1 つは、私の production.rb ファイルで config.assets.compile を "true" に変更すると、すべての JS が正常に読み込まれるが、明らかにサイトの初期読み込みが非常に遅いことです。この問題のトラブルシューティング方法を教えてください。私は Heroku を初めて使用するので、確信が持てず、役立つ情報がオンラインで見つかりませんでした。

すべての JS ファイルが /assets/javascripts/ にあるため、自動的に含まれているはずですが、そうではないようです。

ここに私の production.rb があります:

BrainDb::Application.configure do
# Settings specified here will take precedence over those in config/application.rb

client = Dalli::Client.new
config.action_dispatch.rack_cache = {
:metastore    => client,
:entitystore  => client,
:allow_reload => false
}
# Code is not reloaded between requests
config.cache_classes = true

# Full error reports are disabled and caching is turned on
config.consider_all_requests_local       = false
config.action_controller.perform_caching = true

# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = true
config.static_cache_control = "public, max-age=2592000"

# Compress JavaScripts and CSS
config.assets.compress = true

# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false

# Generate digests for assets URLs
config.assets.digest = true

config.i18n.fallbacks = true

# Send deprecation notices to registered listeners
config.active_support.deprecation = :notify


end

public/assets からもすべて削除して、プリコンパイルできるようにしました。これがapplication.rbです:

require File.expand_path('../boot', __FILE__)

require 'rails/all'


if defined?(Bundler)
 # If you precompile assets before deploying to production, use this line
 Bundler.require(*Rails.groups(:assets => %w(development test)))
 # If you want your assets lazily compiled in production, use this line
 # Bundler.require(:default, :assets, Rails.env)
end

module BrainDb
class Application < Rails::Application

# Configure the default encoding used in templates for Ruby 1.9.
config.encoding = "utf-8"

# Configure sensitive parameters which will be filtered from the log file.
config.filter_parameters += [:password]

# Enable escaping HTML in JSON.
config.active_support.escape_html_entities_in_json = true

config.active_record.whitelist_attributes = true

config.assets.initialize_on_precompile = false


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

config.cache_store = :dalli_store

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

終了 終了

更新 Application.js:

//
//= require jquery
//= require jquery_ujs
4

1 に答える 1

0

追加

//= require_tree .最後にプリコンパイル

あなたのapplication.jsで。

于 2013-08-28T00:55:49.863 に答える