标签: asset-pipeline

Rails 3.1静态资产 - 必须通过预编译为生产资产?

我对生产模式下新Rails 3.1资产管道的理解如下: - >

  1. config.action_controller.asset_host = "https://mybucket.s3.amazonaws.com"
  2. config.assets.compile = false
  3. app/assets 被检查回购
  4. bundle exec rake assets:预编译并与S3同步(所有资产)
  5. public/assets 没有检查回购

综上所述,我认为Rails会查找S3上的所有资产,而我不需要它们存储库中.或者至少我不需要回购中的预编译资产public/assets.

我在heroku上发现了这个,如果没有config.assets.compile = true,它就会在S3上找不到预编译的资产.并且heroku 必须经历所有资产的编译阶段,但随后将服务于S3.跑heroku run rake assets:precompile不蹲.生产过程将重新编译所有内容.

咦?这对我来说毫无意义.

我觉得你不需要用图像填充你的回购,让你的CDN做你的工作.

我觉得这是不正确的.我是对还是错?

ruby-on-rails-3.1 asset-pipeline

7
推荐指数
1
解决办法
5497
查看次数

Rails 3.1带有image_tag的ActionMailer中的资产

资产对我的Web视图工作正常,但由于某种原因,我的Mailer不使用资产管道.我想在我的邮件程序视图中使用image_tag:

=link_to image_tag("logo.png")
Run Code Online (Sandbox Code Playgroud)

然而,这呈现为

<img alt="logo" src="http://mydomain.com/assets/logo.png">
Run Code Online (Sandbox Code Playgroud)

代替

<img alt="logo" src="http://mydomain.com/assets/logo-xxxxxxxxx...png">
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?

我的设置是:

config.action_mailer.default_url_options = { :host => config.domain }
config.action_mailer.asset_host = "http://" + config.domain
Run Code Online (Sandbox Code Playgroud)

谢谢!

ruby-on-rails actionmailer asset-pipeline

7
推荐指数
1
解决办法
4282
查看次数

Rails 3.1:文件上传应该添加到资产管道吗?

我有一个rails 3.1应用程序,允许用户上传图片.这些图片是应该存储为资产(在应用程序/资产中),因此受到链接开销(缓存,指纹识别等)的影响?或者我应该将它们保存在公共/图像中并将它们存储在资产管道之外?

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

7
推荐指数
1
解决办法
1055
查看次数

在生产中禁用资产捆绑,Rails 3.1?

我有一个现有的Rails应用程序我正在从Rails 3.0升级到Rails 3.1.一切进展顺利,但在转向生产时,我的样式表正在破碎,显然是由于资产编制.

我想在生产中禁用资产编译,直到我可以解决样式表冲突,但我抛出的配置开关似乎没有工作.

production.rb

# Don't fallback to assets pipeline
config.assets.compile = false

# Do not compress assets
config.assets.compress = false

# Generate digests for assets URLs
config.assets.digest = false
Run Code Online (Sandbox Code Playgroud)

重新启动Passenger后,application.css是唯一提供的样式表,包含内联内容.在开发环境中我有:

development.rb

# Do not compress assets
config.assets.compress = false

# Expands the lines which load the assets
config.assets.debug = true
Run Code Online (Sandbox Code Playgroud)

...导致加载了几个样式表,而不仅仅是application.css,以及应用程序中的工作样式.

application.rb中

=stylesheet_link_tag 'application'
=javascript_include_tag 'application'
Run Code Online (Sandbox Code Playgroud)

application.css

*= require flutie
*= require_self
*= require jquery-ui-1.8.14.custom.css
*= require demo_table
Run Code Online (Sandbox Code Playgroud)

所有资产都在app/assets中设置

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

7
推荐指数
1
解决办法
4131
查看次数

在Rails 3.1 on Production(Heroku)中显示为空白的图像

我最近将我的Rails更新为3.1.

这是我添加的部分:

<%= asset_path('logo_symbol.png') %>
Run Code Online (Sandbox Code Playgroud)

这使得/assets/logo_symbol.png它在开发环境中完美地工作.但是,当我将代码推送到heroku上的生产时,它会显示一个损坏的图像,其中包含url : assets/logo_symbol-135ddc8db2c9b59f032bed7db520137a.png. 我猜这个新名字是出于一些优化的原因.

然而,值得注意的是,当我assets/logo_symbol-135ddc8db2c9b59f032bed7db520137a.png在生产中访问网址时,我看到一个空白页面,但是当我将该网址更改为任意内容时,例如向其添加数字时,它会显示未找到的网页.很明显,它正在那个网址上找到一些东西.当我/assets/logo_symbol.png直接进入production/heroku 时,它还会显示一个空白页面.

如果这是任何帮助,heroku不会在我推送代码时成功预编译,并且heroku的文档说明目前没有针对该问题的解决方法.

任何帮助都将非常感谢.

我的猜测是它与某些与环境相关的配置有关.我附上了我的application.rb,development.rb和production.rb文件的内容

这是我的production.rb文件的内容

 # Settings specified here will take precedence over those in config/application.rb

  # In the development environment your application's code is reloaded on
  # every request.  This slows down response time but is perfect for development
  # since you don't have to restart the webserver when you make code changes.
  config.cache_classes = false

  # Log error messages when you …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails image heroku ruby-on-rails-3.1 asset-pipeline

7
推荐指数
1
解决办法
2960
查看次数

在Rails 3中有选择地禁用asset.digest,因此外部站点可以包含样式表

目的:

我想要一个Tumblr博客从Rails应用程序的资产目录中提取CSS.

这意味着我可以使用SASS,Compass和其他全站点CSS来生成样式.

这也意味着如果在低级CSS中更新任何内容,tumblr.css将与常规CSS 一起重新生成cap deploy,并且Tumblr的外观将自动更改.

问题:

Rails 3资产管道为文件名添加了一个哈希,例如:

tumblr-c6ec969ce054623163b9404f6c8330e9.css

因此,Tumblr模板不能包含它,除非我每次更改时手动更新URL.

有没有办法有选择地禁用asset.digest一个文件,或者从SASS显式生成单个CSS文件,而无需通过整个资产管道?或者可能生成自动别名或其他什么?

tumblr ruby-on-rails-3.1 asset-pipeline

7
推荐指数
1
解决办法
2237
查看次数

资产管道和@ font-face on rails(rails 3.2.3)

如何在rails上使用@ font-face来修改字体:

我的字体位于:

/ vendor/assets/stylesheets/fonts/custom-font-lists-here .eot

包含@ font-face的样式表在里面:

/vendor/assets/stylesheets/fonts.css

我现在正在使用它

@font-face {
    font-family: 'ArimoRegular';
    src: url('<%= asset_path('fonts/arimo-regular-webfont.eot') %>');
    src: url('<%= asset_path('fonts/arimo-regular-webfont.eot') %>'+'?#iefix') format('embedded-opentype'),
         url('<%= asset_path('fonts/arimo-regular-webfont.woff') %>') format('woff'),
         url('<%= asset_path('fonts/arimo-regular-webfont.ttf') %>') format('truetype'),
         url('<%= asset_path('fonts/arimo-regular-webfont.svg') %>#ArimoRegular') format('svg');
    font-weight: normal;
    font-style: normal;

}
Run Code Online (Sandbox Code Playgroud)

我想知道这是对的,

欢迎任何建议,谢谢

assets ruby-on-rails font-face ruby-on-rails-3 asset-pipeline

7
推荐指数
1
解决办法
6788
查看次数

Rails Asset Pipeline - 如何确定资产是否存在?

如果资产存在,有没有办法询问资产管道?我基本上看到的建议涉及手动检查文件路径File.exist?.问题在于我有几个包含资产的宝石,所以我必须查看每个资产目录,对吧?这似乎是我期望被融入Asset Pipeline的东西,但我找不到任何对它的引用.

我目前的解决方案是一个丑陋的黑客,所以我希望你有更好的东西.asset_path(file)如果资产不存在(或者它是绝对路径),则调用将返回资产的新URL(/ asset/xyz)或相同的路径.所以我丑陋的黑客是:

def has_asset?(path)
  # Asset pipeline only does relative paths
  if path[0] == '/'
    return false
  end
  asset_path(path) != '/#{path}'
end
Run Code Online (Sandbox Code Playgroud)

asset-pipeline ruby-on-rails-4

7
推荐指数
2
解决办法
3825
查看次数

IntelliJ IDEA中的语言注入Grails asset-pipeline插件

我想知道如何在IntelliJ IDEA中为下面的代码块设置语言注入.

我希望将其中的内容<asset:script/>视为JavaScript:

<body>
    <asset:script type="text/javascript">
        console.debug("javascript here");
    </asset:script>
</body>
Run Code Online (Sandbox Code Playgroud)

提前致谢.

javascript grails intellij-idea asset-pipeline

7
推荐指数
0
解决办法
275
查看次数

UrlMappings将URL指向Grails中的资产管道文件

在Grails 3.0中,如何将URL映射到该文件assets夹下的文件?

例如:
http://localhost:8080/favicon.ico- >grails-app/assets/images/bookmark.ico

我尝试了一些测试映射,例如:

的grails-app /控制器/ UrlMappings.groovy

class UrlMappings {

   static mappings = {
      ...
      "/t1.png"  (uri: "/assets/images/test.png")
      "/t2.png"  (uri: "/assets/test.png")
      "/t3.png"  (uri: "/images/test.png")
      "/t4.png"  (dir: "assets/images", file: "test.png")
      ...
      }

}
Run Code Online (Sandbox Code Playgroud)

...但它们都会导致500服务器错误.

grails url-mapping urlmappings.groovy asset-pipeline grails-3.0

7
推荐指数
1
解决办法
1588
查看次数