【问题标题】:asset:precompile for .js files? rails 3.1资产:预编译 .js 文件?导轨 3.1
【发布时间】:2012-02-25 19:14:45
【问题描述】:

问题:

如何让资产管道处理所有您的 .js 文件?(我希望它们单独提供,而不是捆绑到 application.js 中)

我的页面试图引用的 javascript 文件收到大量 404:

GET http://<myStagingServer>.heroku.com/assets/<javascriptFilename1_MD5fingerprint> 404 (Not Found)
GET http://<myStagingServer>.heroku.com/assets/<SubDir>/<javascriptFilename2_MD5fingerprint> 404 (Not Found)

我尝试将此添加到config/application.rb

config.assets.precompile << '*.js'

但据我所知,这并没有起到任何作用。

背景:

我正在从 Rails 3.0 升级到 3.1 并启用资产管道。

迄今为止的亮点:

  • 从 Bamboo 切换到 Heroku 的 Cedar 堆栈:heroku create --stack cedar
  • 切换到“瘦”作为生产服务器,修复了各种问题:gem 'thin'
  • 将我的资产从public/assets 移动到app/assets,更新代码中的引用以使用stylesheet_link_tagjavascript_include_tag。 (加上我为图像所做的一切——它们都有效。)
  • 删除 x_sendfile_header 配置选项,因为 Heroku doesn't support it

相关文件:

//  
// application.js  
//  
//= require_self  
//  

【问题讨论】:

  • 我不知道编译对 .js 和 .css 意味着什么。我想我会在这里学到一些东西。
  • 向我们展示你的 application.js/css
  • @duffymo:呵呵——我的意思是我希望它们被 Sprockets 拾取(我认为),给定和 MD5 指纹,然后移动到适当的文件夹。
  • 我想我会改写我的问题,除非这是 Rails 爱好者对该词的常用用法。
  • @SergioTulentsev,我刚刚注意到我一直在使用“require_tree”。而不是 application.js 中的“require_self”,所以我改变了它。现在我的开发环境可以工作了,但我仍然在登台/生产时遇到错误。

标签: ruby-on-rails


【解决方案1】:

天哪:我发现了问题:

名称中带有句点的 JavaScript 和样式表需要显式扩展

例如:

# WORKS
javascript_include_tag "application"
stylesheet_link_tag "application"

# BROKEN
javascript_include_tag "jueryui.custom"
stylesheet_link_tag "jueryui.custom"

# WORKS
javascript_include_tag "jueryui.custom.js"
stylesheet_link_tag "jueryui.custom.css"

我想我可以理解为什么会这样,但我认为它在任何资产管道教程中都没有得到很好的记录。资产文件名中不应该有句点是常识吗?

【讨论】:

    【解决方案2】:

    我认为您在 application.js 和 application.css 中都需要以下内容:

    //= 要求树。

    这会加载 CSS 和 JS 的 assets 目录中的所有文件。

    也用于升级到 3.1 和资产管道信息:

    http://railscasts.com/episodes?utf8=✓&search=资产+管道

    还有:Using Rails 3.1 assets pipeline to conditionally use certain css

    【讨论】:

    • 谢谢,但我正在尝试单独复制文件——而不是将它们捆绑到应用程序资产文件中。你已经指出了做后者的正确方法。
    猜你喜欢
    • 2014-11-25
    • 2011-12-20
    • 2011-11-08
    • 2020-11-17
    • 2012-05-20
    • 2012-02-27
    • 2011-11-30
    • 1970-01-01
    • 2011-11-14
    相关资源
    最近更新 更多