我知道这里有100万个问题,但我无法得到这个。Rails 3.1,从资产管道中排除JS文件
我想包括我的JS文件的大部分资产管道,但我有几个我想有条件地(或只在某些页面)加载。这些是大而复杂的文件,永远不会被95%的用户使用,所以我宁愿没有为每个用户加载它们。的JS文件,一组是一个日历,放置在:
app/assets/javascripts/calendar
所以我的清单设置为仅包括顶级目录(和排除日历子目录):
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_directory .
我的config /环境/ production.rb:
# 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
# This following config is left over from previous Rails app,
# so not sure if it's now unnecessary ...
# Disable Rails's static asset server
# In production, Apache or nginx will already do this
config.serve_static_assets = false
在视图中,我使用Ryan Bates的nifty_layout手动包括日历文件:
javascript "calendar/date.js", "calendar/jquery.weekcalendar.js", "calendar/custom.js"
我试过预编译在开发和生产 - 文档不清楚我应该这样做,但它看起来像生产。
当我运行页面时,我得到这个:
ActionView::Template::Error (calendar/date.js isn't precompiled)
我不希望它预编译。我想它手动加载。 (实际上,预编译除了创建的主application.js以外的文件是可以的,但我不知道该怎么做。)
解决方案是什么?
谢谢!