标签: asset-pipeline

"require_tree参数必须是目录"rails 3.1.1预编译资产

我一直在这里试图让资产在我的生产服务器上进行预编译(使用ruby 1.9.2和Rails 3.1.1进行简单的ubuntu安装,并使用新的链轮2.10尝试3.1.2RC) .

"require_tree参数必须是目录".我已经在堆栈上看到了与此相关的其他问题,但情况并不完全相同,并且所提出的解决方案都没有帮助 - 比如在子文件夹中创建存根文件,然后仅在该点相对引用.没运气.

最重要的是,当然,这在所有开发机器上都是完美的(mac具有相同的配置,甚至可以匹配宝石的宝石),在生产环境中.

这是我的/app/assets/javascript/application.js:

//= require ../../views/app/manifest
//= require_self
Run Code Online (Sandbox Code Playgroud)

不是很多.基本上只是指向应用程序区域的真实清单文件(是的,不完全是盒装香草Rails但是......)

这是我的观点/ admin(/views/app/manifest.coffee.js)中的存根清单:

# = require ./app
# = require_tree ./models
# = require_directory ./views <- or using require_directory, either would work fine.
Run Code Online (Sandbox Code Playgroud)

就像我说的那样,在开发环境中,没有任何问题.资产管道即时编译,一切都很好.运行,rake资产:在dev机器上预编译,也没有问题.

我把它发送到生产机器并运行完全相同的代码,我得到:

require_tree参数必须是目录

这里必须有一些细微的差别,我只是没有看到.任何帮助将非常感激!

ruby-on-rails production-environment ruby-on-rails-3 sprockets asset-pipeline

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

Rails 3.1引擎的资产

如何在Rails 3.1中的引擎中提供资产?它们应该放在哪里,是否可以自动包含在内?

(最初由Tomas Celizna提出)

ruby ruby-on-rails ruby-on-rails-3.1 asset-pipeline

27
推荐指数
1
解决办法
7830
查看次数

Rails 4:如何创建使用资产管道的自定义404页面?

有许多解决方案可用于创建自定义错误处理页面,但Rails 4几乎没有:

鼓励人们修改的标准答案404.html/public不适合我,因为我想用驻留在资产管道的CSS主题.有没有办法让html文件可以访问资产管道中定义的那些样式?如果没有,有没有办法创建一个可以访问管道的自定义错误处理程序?

error-handling ruby-on-rails asset-pipeline ruby-on-rails-4

27
推荐指数
2
解决办法
3万
查看次数

Ruby on Rails:提供vs content_for

今天我遇到了视图助手功能"提供".通过查看其手册,我仍然对它与"content_for"的区别感到困惑.

提供(name,content = nil,&block)

与content_for相同,但与流式传输一起使用时直接返回布局.换句话说,如果要在呈现给定模板时多次连接到同一缓冲区,则应使用content_for,否则,使用provide来告诉布局停止查找更多内容.

问题1:这对我来说非常抽象 - 任何人都可以通过给出一个示范性的例子来充实它吗?

问题2:使用资产管道,性能更好,为什么?

谢谢!

ruby ruby-on-rails content-for asset-pipeline

27
推荐指数
2
解决办法
5727
查看次数

Rails预编译在3MB反应文件上死亡

我们在Rails应用程序中使用React on Rails.部署时,资产预编译需要大约20分钟.

根据部署日志,似乎大部分时间花在预编译3.3MB javascript文件上.该文件"app.js"连接由webpack生成的两个文件:

# app.js

//= require vendor-bundle (250KB)
//= require app-bundle  (3.3MB)
Run Code Online (Sandbox Code Playgroud)

考虑到app-bundle的大小,我们是否应该期待很长的预编译时间?或者,我们能改进吗?

作为补充说明,我们尝试直接编译app-bundle,而不是通过app.js要求它,并且花费了相同的时间.

更新:

我们最终将客户端代码分解为一个单独的create-react-app项目,该项目通过API连接到我们的Rails应用程序.我们的devops和部署管道的复杂性大大降低 - 没有真正深入挖掘这个错误.

ruby-on-rails asset-pipeline reactjs webpack react-on-rails

27
推荐指数
1
解决办法
392
查看次数

如何在Rails 3.1中加载CSS框架?

我正在尝试将CS​​S框架Blueprint加载到我的Rails 3.1应用程序中.

在Rails 3.0+中,我在views/layouts/application.html.erb中会有类似的东西:

  <%= stylesheet_link_tag 'blueprint/screen', 'application' %>
  <%= stylesheet_link_tag 'blueprint/print', 'media' => 'print' %>

  <!--[if lt IE 8]>
    <%= stylesheet_link_tag 'blueprint/ie' %>
  <![endif]-->
Run Code Online (Sandbox Code Playgroud)

但是,Rails 3.1现在使用SASS.加载这些Blueprint CSS文件的正确方法是什么?

目前,我在app/assets/stylesheets /中有蓝图目录

我的app/assets/stylesheets/application.css看起来像:

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
 * the top of the compiled file, but it's generally better to create a new …
Run Code Online (Sandbox Code Playgroud)

blueprint-css ruby-on-rails-3 asset-pipeline

26
推荐指数
5
解决办法
2万
查看次数

使用Rails 3.1资产管道的JavaScript代码中的图像的URL?

在CSS文件中,您可以使用以下命令获取图像资产的正确名称(带指纹):

background-image: url(image-url("rails.png"))
Run Code Online (Sandbox Code Playgroud)

但是你如何从JavaScript文件中做同样的事情呢?

javascript image asset-pipeline rails-3.1

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

资产管道:不包括admin.css文件

我将Rails 3.0应用程序升级到Rails 3.1,其中涉及到这个

/*
*= require_self
*= require_tree .
*/
Run Code Online (Sandbox Code Playgroud)

在application.css文件中.但是,有一个admin.css文件现在覆盖了主应用程序css文件.

有没有办法排除admin.css文件被包含?在网站的管理部分,我手动包含admin.css文件,但我需要一种方法将其从用户界面中排除.

ruby-on-rails asset-pipeline

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

资产管道中不存在资产"logo.png"

在Rails 5.1.3中,我在app/assets/images中更改徽标文件然后错误不知道要修复什么.谁知道?

The asset "logo.png" is not present in the asset pipeline.
Run Code Online (Sandbox Code Playgroud)

已经尝试重新启动rails,rails clean,rails或rails assets:precompile

这是我的config/initializers/assets.rb

# Be sure to restart your server when you modify this file.

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

# Add additional assets to the asset load path.
# Rails.application.config.assets.paths << Emoji.images_path
# Add Yarn node_modules folder to the asset load path.
Rails.application.config.assets.paths << Rails.root.join('node_modules')

# Precompile additional assets.
# application.js, application.css, and …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails asset-pipeline ruby-on-rails-5.1

26
推荐指数
4
解决办法
2万
查看次数

rake资产:预编译很慢

命令"rake assets:precompile"对我来说非常慢.特别是在我的Amazon EC2 Micro生产服务器上,它没有很多处理器资源.在EC2上,我必须在每次部署期间等待1分钟或更长时间,仅用于此预编译任务.有没有办法让它更快?

以前我用Jammit来压缩/缩小css和js.Jammit在同一个网站和服务器上的工作速度提高了近10倍.

ruby-on-rails-3.1 asset-pipeline

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