标签: asset-pipeline

如何使用Amazon s3部署(同步)Rails 3.1预编译资产

如何将Rails 3.1管道的预编译资产部署到s3?

我需要一个任务来自动执行与资产存储桶同步的工作.

编辑:

这个gem正是我需要的:https://github.com/rumblelabs/asset_sync.

amazon-s3 ruby-on-rails-3.1 asset-pipeline

12
推荐指数
1
解决办法
4917
查看次数

Rails 3.1:具有命名路由的资产管道

Rails 3.1.0.rc5

我在命令路由在启用ERB的Javascript文件中工作时遇到问题:

# app/assets/javascripts/items.js.erb
$('#start').click(function() {
  $.ajax({
    url : '<%= ajax_items_path %>',
    success : function(result) {
      $('#result').html(result);
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

错误消息如下:

Error compiling asset items.js:
NameError: undefined local variable or method `ajax_items_path' for #<#<Class:0x007fbcb49a7630>:0x007fbcb4ee30b8>
  (in myproject/app/assets/javascripts/items.js.erb)
Run Code Online (Sandbox Code Playgroud)

ajax_items_path如果我直接在视图中使用它,该路径工作正常.

看起来资产管道中没有命名路由.如果是这种情况,那么解决方法是什么?我真的想避免在我的Javascript中硬编码URL.

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

12
推荐指数
1
解决办法
2115
查看次数

如何从日志中忽略Rails 3资产

可能重复:
如何在Rails 3.1中禁用资产管道(链轮)消息的记录?

是否有可能在Rails3中破解记录器以忽略对资产的请求?

当它充满时,在日志中找到一些东西是疯狂的

Started GET "/assets/tiscali.png" for 127.0.0.1 at 2011-09-09 19:59:45 +0200
Served asset /tiscali.png - 304 Not Modified (0ms)
Run Code Online (Sandbox Code Playgroud)

谢谢!

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

12
推荐指数
3
解决办法
4261
查看次数

带有backbone-rails的Rails:EJS文件中的资产助手(image_path)

我有一个使用codebrew/backbone-rails的Rails 3.1应用程序.在.jst.ejs模板中,我想包含一个图像,如下所示:

<img src="<%= image_path("foo.png") %>"/>
Run Code Online (Sandbox Code Playgroud)

但当然,JavaScript中没有资产助手.

链接ERB(.jst.ejs.erb)不起作用,因为EJS语法与ERB冲突.

这就是我所知道的:

  • 资产助手在浏览器中不可用,因此我需要在服务器端运行它们.
  • 我可以通过让服务器将各种资产路径转储到HTML(通过数据属性或<script>JSON)并在JS中读取它来解决这个问题,但这看起来很笨拙.

有没有办法以某种方式在EJS文件中使用资产助手?

ruby-on-rails erb ejs backbone.js asset-pipeline

12
推荐指数
3
解决办法
6289
查看次数

Rails 3.1资产管道css样式在404静态页面中

我正在构建一个静态的public/404.html页面.在Rails 3.1之前,我可以使用public/style.css引用它.但现在有了资产管道,我不知道要链接到什么.我听说样式会被编译成asset/application.css.但在生产时它会带有时间戳.

使用我使用的常规样式来设置静态404.html的最佳方法是什么?

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

12
推荐指数
2
解决办法
5583
查看次数

对于rails 3.2 app,资源预编译不在heroku cedar上运行

本周开始使用资产管道运行最新的rails 3.2.2.对于资产,我希望在将应用程序推送到heroku时编译资产(而不是必须在repo中手动编译和存储已编译的资产).文档表明这应该自动发生.

我遇到的问题是当我运行git push heroku master它时似乎根本不运行rake assets:precompile任务.资产永远不会被编译.这是我得到的输出:

-----> Heroku receiving push
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.1.rc.7
       Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
       Using rake (0.9.2.2)
       .......
       .......
     Your bundle is complete! It was installed into ./vendor/bundle
       Cleaning up the bundler cache.
-----> Writing config/database.yml to read from DATABASE_URL
-----> Rails plugin injection
       Injecting rails_log_stdout
       Injecting rails3_serve_static_assets
-----> Discovering process types
       Procfile declares types      -> …
Run Code Online (Sandbox Code Playgroud)

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

12
推荐指数
2
解决办法
5008
查看次数

部署到heroku资产管道Sprockets :: fileNotFound

我正在尝试将我的应用程序部署到Heroku.Heroku没有加载我的jscss文件

我跑了RAILS_ENV=production bundle exec rake assets:precompile ,它仍然无法正常工作.

然后我跑了 heroku rake assets:precompile

我在Heroku日志中收到此错误:

Error compiling asset application.css:
 Sprockets::FileNotFound: couldn't find file 'jquery.ui.datepicker'
 (in /app/app/assets/stylesheets/application.css.scss:13)

Served asset /application-989f5e5266d9b066eb316183d7db5c77.css - 500 Internal Server Error


 Error compiling asset application.js:
 Sprockets::FileNotFound: couldn't find file 'jquery.ui.datepicker'
 (in /app/app/assets/javascripts/application.js:16)
Served asset /application-d81c946c6f47242e5e97de9bca4938be.js - 500 Internal Server Error
Run Code Online (Sandbox Code Playgroud)

config production.rb:

config.cache_classes = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_assets = true
  config.assets.compress = true
  config.assets.compile = true
  config.assets.initialize_on_precompile = false …
Run Code Online (Sandbox Code Playgroud)

configuration heroku ruby-on-rails-3 asset-pipeline

12
推荐指数
1
解决办法
5550
查看次数

如何在Rails资产管道中确定给定资产的MD5摘要?

我正在Ruby on Rails 3.1项目中编写一个富含Javascript的应用程序,并使用Handlebars作为我的JS模板框架.我正试图找出一种方法来动态地将资产的MD5摘要(在生产中的资产预编译期间生成)附加到我的Handlebars模板内的标签.我希望有一个哈希,资产路径作为密钥,MD5摘要作为值,但我找不到.

一个理想的解决方案是将Ruby中的哈希值传递给Javascript并定义一个Handlebars帮助器,它将自动将MD5摘要附加​​到资产的"src"属性.

有没有人试图做类似的事情?必须有一种方法可以在Rails中使用Javascript模板,并且还可以获得资产指纹识别的好处.

ruby md5 ruby-on-rails asset-pipeline handlebars.js

12
推荐指数
2
解决办法
5925
查看次数

如何避免多个@Imports的SASS变量?

我正在使用的网站使用rails资产管道和application.scss文件来导入和处理不同的css文件.

但是,某些样式表在特定位置使用,对于那些将它们导入全局清单没有意义.但不是这样导入它们需要将variables.scss和可能的mixins.scss导入到工作表本身(因此它们将正确处理),导致最终的css中出现重复的代码.

有没有办法基本告诉预处理器 - "相信我,你看到的变量/ mixin 将由所有处理的时间定义 "?

否则我看不到要避免将每张纸张导入单个清单,这看起来很臃肿.

谢谢.

css ruby-on-rails sass asset-pipeline

12
推荐指数
1
解决办法
4710
查看次数

如何使用Premailer-Rails gem为我的HTML电子邮件指定样式表?

我有一个样式表,我想在路径中的HTML电子邮件中使用: app/vendor/assets/stylesheets/inspinia/email_templates/email-styles.css

我使用Premailer-Rails gem来制作电子邮件样式.

在我的mailer.html.erb布局中,我有以下内容:

<%= stylesheet_link_tag "inspinia/email_templates/email-styles.css", media: 'all' %>
Run Code Online (Sandbox Code Playgroud)

但是,在我的Heroku日志中,我收到以下消息:

app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92] Started GET "/stylesheets/inspinia/email_templates/email-styles.css" for 54.167.56.21 at 2016-12-23 23:25:08 +0000
app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92]   
2016-12-23T23:25:08.286725+00:00 app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92] ActionController::RoutingError (No route matches [GET] "/stylesheets/inspinia/email_templates/email-styles.css"):
Run Code Online (Sandbox Code Playgroud)

那么如何在生产中找出/指定此样式表的正确路径?

ruby-on-rails premailer asset-pipeline ruby-on-rails-5

12
推荐指数
1
解决办法
1226
查看次数