标签: asset-pipeline

我是否在对资产管道做错了什么?

自从"升级"到Rails 3.1后,我的应用程序在开发模式下真的很

(每次请求> 30)

我有很多图像,似乎大部分时间延迟是处理每个图像的每个GET请求的资产管道.

在暂存或生产模式下没有此问题,因为资产已缓存等.

有没有我没有被告知的事情,或者这是我们现在应该如何工作?

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

6
推荐指数
1
解决办法
2099
查看次数

我如何在Mailer中使用资产?

我无法在邮件程序中使用任何形式的资产管道,而是使用Mailer本身或视图.

以下生成并清空src图像标记.

<%= image_tag "emails/header-general.png" %>
Run Code Online (Sandbox Code Playgroud)

空图像标记如下所示:

img alt ="Header-general"

以下通过模型附加文件并在视图中使用它的形式会附加一个空图像.

attachments.inline['header.jpg'] = 'emails/header-general.png'
...
<%= image_tag attachments['header.png'] %>
Run Code Online (Sandbox Code Playgroud)

我确实检查了路径,甚至尝试了多条路径等等但没有运气.请帮忙.在电子邮件中包含图像的任何形式都会有所帮助.

这是生产环境.

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

# 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 = false

# Compress JavaScripts …
Run Code Online (Sandbox Code Playgroud)

assets ruby-on-rails actionmailer ruby-on-rails-3.1 asset-pipeline

6
推荐指数
2
解决办法
3647
查看次数

Rails资产管道和摘要值

有谁知道资产摘要值究竟是如何计算的?如果我有两个包含各种其他包含的JS脚本的JS文件,那么如果没有更改内部脚本,那么每个文件是否会保持相同的摘要哈希?或者是每次资产:预编译操作运行时计算的新摘要值?

ruby rake ruby-on-rails sprockets asset-pipeline

6
推荐指数
2
解决办法
4259
查看次数

Rails 3.2和yui压缩器

Rails的指南对资产管道说,你可以使用YUI的压缩机与CSS:

config.assets.css_compressor = :yui
Run Code Online (Sandbox Code Playgroud)

但是,我没有看到它实际上正在使用它的迹象.对于一个人来说,无论我是否安装了yui-compressor gem都没有区别.另一方面,无论我是否拥有该行,压缩输出都是相同的.

actionpack-3.2.3/lib/sprockets/compressors.rbregistered_css_compressor方法中加入了一点调试行,这是编译css时的结果:#<Sass::Rails::CssCompressor:0x007fdef9f9fee0>

所以似乎配置行没有被尊重.有没有人真正使用过这个选项?

更新

查看sass-rails表示选择被覆盖:

if app.config.assets.compress
    app.config.sass.style = :compressed
    app.config.assets.css_compressor = CssCompressor.new
end
Run Code Online (Sandbox Code Playgroud)

如果我评论出来,那么它实际上会尝试启动yui压缩器...我仍在检查输出以查看它是否正确.

ruby-on-rails sprockets asset-pipeline

6
推荐指数
1
解决办法
2772
查看次数

Rails(3.2.7):覆盖asset_host的image_tag

development.rb:

config.action_controller.asset_host = "assets.myserver.com"
Run Code Online (Sandbox Code Playgroud)

查看脚本:

<%= image_tag('header.jpg') %>
Run Code Online (Sandbox Code Playgroud)

收益率:

<img alt="Header" src="/header.jpg" />
Run Code Online (Sandbox Code Playgroud)

应该:

<img alt="Header" src="http://assets.myserver.com/header.jpg" />
Run Code Online (Sandbox Code Playgroud)

我正在使用rails-api我猜的宝石禁用一些资产和查看渲染的东西.

似乎不应该太难以重新实现(覆盖image_tag)来添加这个非常小的功能.想要这样做似乎有点奇怪.但是,我是新手,想知道如何做到这一点作为学习经验.

问题:

  1. 作为最佳实践,我应该将这个新代码放在文件结构中?
  2. 我应该用新代码命名该文件?
  3. rails如何知道查看新代码而不是查看旧的image_tag函数?

overriding ruby-on-rails-3 asset-pipeline rails-api

6
推荐指数
1
解决办法
1800
查看次数

用于CSS内部国际化的Rails(带有资产管道)的约定是什么?

我知道CSS不应该有内容,但确实如此,就像从Twitter Bootstrap文档CSS中提取的这个好框(下面):

盒子屏幕截图

/* Echo out a label for the example */
.bs-docs-example:after {
  content: "Example";
}
Run Code Online (Sandbox Code Playgroud)

我不关心"示例",我使用类似的东西作为mixin:

.box (@legend) {
  /* Echo out a label for the example */
  &:after {
    content: @legend;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我不需要真正的动态CSS,我可以轻松地将mixin包含在一个类中,但不是传递"Observation"我需要传递t 'box.observation':

.observation {
  .box("<%= t 'box.observation' =>");
}
Run Code Online (Sandbox Code Playgroud)

Rails应该遵循Conventions over Configuration,只需添加静态CSS/LESS/SCSS就很容易了,它已经包含在一个缩小的CSS中的所有页面中.国际化CSS的惯例是什么?例如,我应该把声明放在.observation哪里?

css ruby-on-rails asset-pipeline twitter-bootstrap

6
推荐指数
1
解决办法
560
查看次数

Grails layoutResources等效于资产管道

我正在尝试使用asset-pipeline插件(v1.0.4)在grails v2.3.1中设置SiteMesh布局,但我不确定如何处理在我的模板的特定位置包含javascript资源(如如果使用资源插件,你会使用r:layoutResources ).

示例布局(grails-app/views/layouts/test.gsp):

<html>
   <head>
      <title><g:layoutTitle/></title>
      <g:layoutHead/>
   </head>
   <body>
      <div class="thecontent">
         <g:layoutBody/>
      </div>
      <asset:javascript src="application.js"/>
      <!-- WANT DECORATED PAGE RESOURCES TO BE INCLUDED HERE -->
   </body>
</html>
Run Code Online (Sandbox Code Playgroud)

示例gsp(grails-app/views/test.gsp):

<html>
   <head>
      <meta name="layout" content="test"/>
      <title>The Title</title>
      <asset:stylesheet src="thispageonly.css"/>
   </head>
   <body>
      <div id="helloworld">
         Hello World
      </div>
      <asset:javascript src="thispageonly.js"/>
   </body>
</html>
Run Code Online (Sandbox Code Playgroud)

生成的装饰页面(忽略资产管道捆绑/等)适用于样式表(因为它在头部)但是javascript失败:

<html>
   <head>
      <meta name="layout" content="test"/>
      <title>The Title</title>
      <link rel="stylesheet" href="/assets/thispageonly.css?compile=false"/>
   </head>
   <body>
      <div class="thecontent">
         <div id="helloworld">
            Hello World
         </div>
         <!-- *** NOT WHERE I WANT THIS …
Run Code Online (Sandbox Code Playgroud)

grails resources asset-pipeline

6
推荐指数
1
解决办法
4786
查看次数

加载页面后自动加载javascript函数

我是Rails的新手,现在还不太了解资产管道…

我想让

views/product/product.js 
Run Code Online (Sandbox Code Playgroud)

之后自动射击

views/product/index.html.erb 
Run Code Online (Sandbox Code Playgroud)

由于DRY原因而被渲染。

加载任何或部分model.erb文件后,资产管道中是否有一个地方调用model.js文件?

我知道如何手动操作,并删除了

app/assets/javascripts/product.js
Run Code Online (Sandbox Code Playgroud)

但是然后我必须在新的show中调用doSomethingAfterPageload()方法。删除等。甚至更好,如果这也适用于部分。

javascript ruby-on-rails actionview asset-pipeline

6
推荐指数
1
解决办法
4754
查看次数

require_tree是否需要'vendor/assets'和'lib/assets'中的文件? - 铁路

我开始知道,在生产模式中预编译资产时,app/assets如果我们不需要来自任何其他特定来源(如' vendor/assets'和' lib/assets')的文件,Rails将仅从默认情况下获取资产.

我有一个问题:

require_tree.从'vendor/assets'和'lib/assets'加载资产?

ruby ruby-on-rails ruby-on-rails-3 asset-pipeline

6
推荐指数
1
解决办法
3122
查看次数

使用Asset Pipeline和Webpacker升级Rails 5.1的AngularJS

我一直在寻找解决方案,但尚未找到好的策略。

我有一个使用Rails资产管道的巨型AngularJS 1.x应用程序,我的目标是使用UpgradeModule使用Webpacker从angular 1.x缓慢迁移到5.x。

我的问题是...如何使用链轮和资产管道获取旧的javascript文件,使其与Angular 5导入的新Webpack样式配合使用?

我可以将所有内容都放入Webpack,但这需要大量的重构。有没有人对此有任何经验并有好的解决方案?

ruby-on-rails asset-pipeline angularjs webpacker angular

6
推荐指数
0
解决办法
177
查看次数