出于某种原因,在运行rake assets:precompile
后,require
中的application.js
语句保持不变。以下是编译 application.js
的样子:
//
//= require jquery
//= require jquery_ujs
//= require_directory .
//= require twitter/bootstrap
//= require rails.validations
$(document).on("click", '.show', function(e) {
var value = $(this).attr('data-big-url');
$('.image_container img').attr('src', value);
return false;
});
应该替换//= require
个陈述!
有什么想法吗?..
谢谢!
编辑:未编译application.js
:
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require_directory .
//= require twitter/bootstrap
//= require rails.validations
$(document).on("click", '.show', function(e) {
var value = $(this).attr('data-big-url');
$('.image_container img').attr('src', value);
return false;
});
// $(window).load(function() {
// $('#featured').orbit();
// // $('#featured-bg').orbit();
...
它看起来完全一样!
这是我的production.rb
:
config.serve_static_assets = true
config.assets.compress = false
config.assets.compile = false
config.assets.digest = false
答案 0 :(得分:1)
我可能错了,但我不相信你在预编译的JS文件中需要require ____
原因是
require
行被称为指令指南 为您的资产创建manifest.json
文件。该 manifest基本上告诉Rails哪些文件组成了你的资产, 允许它有效地编译它们
您可以在Rails指南here中看到预编译文档 - 基本上说您从预编译中获得的文件是" standalone"文件。它们是作为静态文件加载的,没有任何预处理器或指令
我会试试这个:
$ rake assets:precompile RAILS_ENV=production
这将编译文件,就好像它是生产环境一样,并将它们作为裸JS / CSS文件存储在/public/assets
中
答案 1 :(得分:0)
最后,我解决了这个问题:
我不得不降级到Ruby 1.9.3。
不幸的是,我仍然不知道问题的原因是什么,但现在我的资产编译正确。