标签: precompile

rake资产:预编译RAILS_ENV =生产不按要求工作

我试图使用命令预编译资产rake assets:precompile RAILS_ENV=production,但我总是得到以下错误.

** Invoke assets:precompile (first_time)
    ** Execute assets:precompile
    /usr/bin/ruby /usr/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace
    ** Invoke assets:precompile:all (first_time)
    ** Execute assets:precompile:all
    ** Invoke assets:precompile:primary (first_time)
    ** Invoke assets:environment (first_time)
    ** Execute assets:environment
    ** Invoke environment (first_time)
    ** Execute environment
    ** Invoke tmp:cache:clear (first_time)
    ** Execute tmp:cache:clear
    ** Execute assets:precompile:primary
    rake aborted!
    LoadError: cannot load such file -- uglifier
      (in /home/cool_tech/cool_tech/app/assets/javascripts/application.js)
    /usr/lib/ruby/gems/2.0.0/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in `require'
    /usr/lib/ruby/gems/2.0.0/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in `block in require'
    /usr/lib/ruby/gems/2.0.0/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:236:in `load_dependency'
    /usr/lib/ruby/gems/2.0.0/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in `require'
    /usr/lib/ruby/gems/2.0.0/gems/actionpack-3.2.14/lib/sprockets/compressors.rb:31:in `registered_js_compressor'
    /usr/lib/ruby/gems/2.0.0/gems/actionpack-3.2.14/lib/sprockets/bootstrap.rb:18:in `block in run' …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails precompile ruby-on-rails-3 asset-pipeline ruby-on-rails-3.2

33
推荐指数
2
解决办法
11万
查看次数

详细输出来自rake资产:预编译

我刚刚开始使用asset_sync gem,我的资产似乎是乱序编译的,Sass文件无法访问其他Sass文件中定义的变量.怎样才是真正帮我缩小的问题是能看到预编译过程中究竟发生了什么事,但双方rake assets:precompileheroku run rake assets:precompile似乎没有提供详细选项.我得到的是一些更高级别的输出,后跟一个rake aborted!和一个堆栈跟踪.Tailing heroku日志对我没有任何帮助,那么如何在Heroku上获取资产预编译期间发生的更详细的日志呢?

logging ruby-on-rails heroku precompile

22
推荐指数
2
解决办法
1万
查看次数

Modern C++:初始化constexpr表

假设我有一个类X,哪个功能需要很多常量表值,比如一个数组A[1024].我有一个f计算其值的重复函数,就像

A[x] = f(A[x - 1]);
Run Code Online (Sandbox Code Playgroud)

假设这A[0]是一个已知常量,因此数组的其余部分也是常量.使用现代C++的功能预先计算这些值的最佳方法是什么,并且没有使用此数组的硬编码值存储文件?我的解决方法是一个const静态虚拟变量:

const bool X::dummy = X::SetupTables();

bool X::SetupTables() {
    A[0] = 1;
    for (size_t i = 1; i <= A.size(); ++i)
        A[i] = f(A[i - 1]);
}
Run Code Online (Sandbox Code Playgroud)

但我相信,这不是最美好的方式.注意:我强调数组相当大,我想避免代码的怪异.

c++ precompile constexpr c++11 c++17

20
推荐指数
2
解决办法
2467
查看次数

在Azure Web服务的发布期间进行预编译

我们正在使用Azure Web服务(而不是Web站点)并在其中运行ASP.Net MVC 5.1应用程序.

当我通过Web部署发布网站时,我可以选择"在发布期间预编译":

在此输入图像描述

当我发布到Azure Web服务时,我无法在任何地方找到此选项.有什么指针吗?

这个想法是预先编译视图,所以首先点击一个视图不会因为动态编译而受到时间的影响.

我看过Razor Generator,但它不适合我们的需求.我见过很少的其他选项,但在发布阶段编译视图对我们的案例最有意义.

UPD: 仅供我参考,我已经尝试了David Ebbo建议的内容 ,但它没有用.

deployment asp.net-mvc publishing azure precompile

15
推荐指数
1
解决办法
2148
查看次数

Rails 4 - 在生产服务器上资源预编译之后没有manifest.json

这是Rails 4.2应用程序的app/assets /.

在此输入图像描述

有3个bootstraps js和css文件.部署到生产(ubuntu 12.1)后,资产预编译在服务器上完成(部署在suburi下):

RAILS_ENV=production bundle exec rake assets:precompile RAILS_RELATIVE_URL_ROOT=/mysuburi
Run Code Online (Sandbox Code Playgroud)

这是production.rb:

  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_files = false #ENV['RAILS_SERVE_STATIC_FILES'].present?
  config.assets.compress = true
  config.assets.js_compressor = :uglifier
  config.assets.compile = false
  config.assets.digest = true
  config.log_level = :debug
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new
  config.active_record.dump_schema_after_migration = false
Run Code Online (Sandbox Code Playgroud)

以下是负责人application.css.scss:

@import "bootstrap.min.css";
@import "bootstrap-theme.min.css";

@import "simple_form.css.scss";
@import "user_menus.css.scss";
Run Code Online (Sandbox Code Playgroud)

application.js,它有:

//= require bootstrap.min
Run Code Online (Sandbox Code Playgroud)

以下是lspublic/assets/on production服务器的输出:

application-05cf37813d76c2bd659271403789374cc118f1a4e616ec220969577b79ff6514.css …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails precompile asset-pipeline ruby-on-rails-4

15
推荐指数
2
解决办法
3500
查看次数

rake assets:预编译需要很长时间才能完成

在我的开发沙箱中

RAILS_ENV=production rake assets:precompile
Run Code Online (Sandbox Code Playgroud)

需要4分钟才能完成.这是正常的吗?在heroku上花费超过10分钟来完成这项工作,有时会超时.有没有办法解决这个问题和/或加快速度?

UPDATE

我分析了编译的CSS和JS阶段

3.7 s        js
175 s            css
Run Code Online (Sandbox Code Playgroud)

这些数字是通过这里的仪器制作的

----------------------
/Users/bradphelan/.rvm/gems/ruby-1.9.2-p180@gobbq/gems/sprockets-2.1.2/lib/sprockets/processing.rb
----------------------
266     # Assign a compressor to run on `application/javascript` assets.
267     #
268     # The compressor object must respond to `compress` or `compile`.
269     def js_compressor=(compressor)
270       expire_index!
271  
272       unregister_bundle_processor 'application/javascript', :js_compressor
273       return unless compressor
274  
275       register_bundle_processor 'application/javascript', :js_compressor do |context, data|
276  
277         timeit "js" do
278           compressor.compress(data)
279         end
280  
281       end
282     end
Run Code Online (Sandbox Code Playgroud)

    ----------------------
    /Users/bradphelan/.rvm/gems/ruby-1.9.2-p180@gobbq/gems/sprockets-2.1.2/lib/sprockets/processing.rb
    ---------------------- …
Run Code Online (Sandbox Code Playgroud)

performance precompile ruby-on-rails-3.1 asset-pipeline

14
推荐指数
2
解决办法
8372
查看次数

如果未在c ++之前定义,则定义函数/方法

我还没有使用C++ 11,所以我to_string(whatever)自己编写了这些函数.只有在它们不存在时才应编译它们.如果我切换到C++ 11,应该跳过它们.我有这样的事情:

#ifndef to_string

string to_string(int a){
    string ret;
    stringstream b;
    b << a;
    b >> ret;
    return ret;
}

string to_string(double a){
    string ret;
    stringstream b;
    b << a;
    b >> ret;
    return ret;
}

#endif
Run Code Online (Sandbox Code Playgroud)

这显然不起作用.这样的事情是可能的,如果是的话,怎么样?

c++ methods function precompile c++11

14
推荐指数
2
解决办法
2376
查看次数

Rails 3.1中的供应商CSS样式表和资产管道

我使用Twitter Bootstrap(不重要但它是第三方 CSS文件).因为它是第三方CSS"库",它应该进入/vendor/assets/stylesheets.到现在为止还挺好.

现在,我想在生产中使用Rails 3.1(.1)资产管道连接一个application.css中的所有CSS,这就是我遇到的问题.

当我运行rake assets:precompile它时,就像宣传的一样.Rake任务在public/assets带有摘要的所有文件夹中创建一些application.css文件.问题是这个文件只包含我的CSS文件中的CSS,/app/assets/stylesheets并完全忽略了我的供应商资产文件夹中的CSS .

有谁知道我在这里想念的内容以及如何告诉Rails将供应商样式表与应用程序一起连接起来?此外,仅包括:

<%= stylesheet_link_tag "application" %>
Run Code Online (Sandbox Code Playgroud)

在视图中(因为我希望最终所有内容都在一个文件中)或者我应该包含每个CSS文件?

precompile ruby-on-rails-3.1 asset-pipeline

13
推荐指数
1
解决办法
7246
查看次数

config.assets.precompile不添加供应商/宝石资产

我无法将供应商资产编译为根文件.

我希望独立提供以下资源(不与其他资产一起打包):

vendor/gems/neo-viz/app/assets/stylesheets/neo-viz.css.scss
vendor/gems/neo-viz/app/assets/javascripts/neo-viz.js.coffee
vendor/gems/neo-viz/app/assets/javascripts/lib/jQuery/jquery-1.6.1.min.js
vendor/gems/neo-viz/app/assets/javascripts/lib/arbor/arbor.js
Run Code Online (Sandbox Code Playgroud)

使用以下行:

config.assets.precompile += %w( jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css )
Run Code Online (Sandbox Code Playgroud)

只预编译css文件并使其可用.为什么?

此外,在看到这个问题(在Rails中包含带有config.assets.precompile的子目录中的资产)之后,我尝试了:

config.assets.precompile += %w( jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css lib/arbor/arbor.js arbor/arbor.js lib/jQuery/jquery-1.6.1.min.js jQuery/jquery-1.6.1.min.js   )
Run Code Online (Sandbox Code Playgroud)

但它没有任何区别.想法?

assets ruby-on-rails precompile asset-pipeline

13
推荐指数
1
解决办法
9812
查看次数

Rails 4.2 Rails.application.config.assets.version不会使摘要资产文件名无效

我有一个Rails 4.2.4(Ruby 2.2.2)应用程序,我通过Cloudfront提供静态资产.

如果Cloudfront提供您不想要的东西,有两种可能性:

  • 使Cloudfront中的内容无效或
  • 更改所服务资产的名称

但是,当我改变

Rails.application.config.assets.version ='1.0'

Rails.application.config.assets.version ='2.0'

(在config/initializers/assets.rb中)

  • 删除公共/资产中的所有资产

  • 运行"RAILS_ENV = staging bundle exec rake assets:precompile"

生成相同的文件名!

我发现使application.scss的消化文件无效的唯一方法是添加一些虚拟内容以激发新的md5校验和.

我究竟做错了什么?

不应该新的assets.version改变消化的文件名吗?

最诚挚的问候和感谢!

assets version precompile ruby-on-rails-4

13
推荐指数
1
解决办法
878
查看次数