问题标签 [asset-pipeline]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
css - Rails 3.1 资产管道指纹
简单的问题:
我有一个在 staging 中运行的 Rails 3.1 应用程序,即RAILS_ENV=production
. 我的问题是: stylesheet_link_tag
为我的 css 文件生成的指纹与由rake assets:precompile
.
因此,当我请求页面时,样式表的链接正在寻找如下文件:
但实际上位于公共/资产中的文件是
并且浏览器返回 404 Not Found。
这是我的链接stylesheet_link_tag :front
。谁能向我解释为什么会这样?
javascript - 资产管道中的路由助手
使用 Rails 3.1.0.rc4,我正在尝试访问 javascript 文件(在本例中为 event.js.erb)中的路由帮助程序,并且当时似乎没有加载它们。请求合并的 /assets/application.js 文件时,我得到:
知道如何访问那里的路线助手吗?
ruby-on-rails - Rails 3.1 资产管道:忽略来自 Emacs 和其他编辑器的备份文件
在 Rails 3.1 项目中,如果我app/assets/javascripts/users.js.coffee
使用 Emacs 进行编辑,那么 Emacs 会创建一个名为app/assets/javascripts/users.js.coffee~
(注意结尾的“~”)的备份文件。
不幸的是,新的 Rails 3.1 资产管道看到了这个.coffee~
文件,并将其直接注入到 generatedapplication.js
中,这反过来又导致浏览器中的 JavaScript 错误。
我可以通过以下方式关闭 Emacs 中的备份:
...或者我可以使用:
...将它们移动到另一个目录。
但这将要求项目中的每个 Emacs 用户重新配置他们的 Emacs,这是不可取的。我更愿意将 Rails 3.1 配置为忽略以.coffee~
. 是否有捷径可寻?
ruby-on-rails-3.1 - Rails 3.1:确定资产是否存在
是否有一种内置的方法来确定资产是否存在而不诉诸File.exists?(File.join(Rails.root, "foo", "bar", "baz"))
资产路径并查看资产路径。
我的应用程序从 Resque 队列上的远程服务器获取图像;直到我们下载了图像,我想提供一个占位符图像。目前我正在使用File.exists
......但这意味着硬编码路径,这很糟糕,或者查看配置的资产路径。似乎这应该已经存在,但我在文档中找不到它。
node.js - ExecJS 问题编译 Rails 3.1 资产
我的 Rails 3.1.rc4 应用程序运行良好,但我试图找出将我的 js 文件存储在管道中的适当方法。如果我将任何代码放在 application.js 以外的文件中,我会收到以下错误:
在 2011-07-21 23:15:02 -0500 开始 GET "/assets/application.js" for 127.0.0.1 编译 ~/Dropbox/Rails/myapp/app/assets/javascripts/application.js.coffee (224ms) (pid 69397) 编译资产 application.js 时出错:ExecJS::ProgramError: SyntaxError: 第 1 行的保留字“function”(在 /Users/micahalcorn/Dropbox/Rails/myapp/app/assets/javascripts/users/registrations.js .coffee) 服务资产 /application.js - 500 内部服务器错误
无论哪个文件(registrations
在这种情况下)都会发生这种情况,并且无论文件中的第一个单词如何( , 等)都声称一个“保留字var
” function
。我使用 node.js 作为我的运行时环境,如果我删除 coffeescript 编译 gem 并将其视为 Rails 3.0 应用程序,一切正常。我想更好地了解资产管道并遵循惯例。感谢您的任何建议!
ruby-on-rails - Ruby 更新后 Rails 3.1rc4 资产管道中断?如何重新激活/配置它?
不知何故,这是相关的,但我不确定如何/为什么?
刚刚通过 RVM 的命令从 Ruby 1.9.2-p180 升级到 1.9.2-p290 rvm upgrade
……现在我的资产管道已经“损坏”了。
在此期间rvm upgrade ...
,我注意到每个 gemset 存在以下错误:
我让升级继续,因为 gemset.pristine.log 中没有太多有趣的东西......此外,/Users/meltemi/.rvm/log//gemset.pristine.log
不(不能?)存在于那个确切的路径中吗?路径名中有两个连续的“//”?反正...
测试一个小型应用程序,尽管它启动并似乎运行它并没有加载任何资产(图像、css 等)。开发日志有很多Not Found
关于这些缺失资产的错误(见下文),即使它们存在于app/assets/images
andapp/assets/stylesheets
等...?
有人知道这里发生了什么吗?似乎管道已经以某种方式崩溃了......好像 Rails 不再知道在应用程序/资产中寻找资产,也许?我如何测试/验证/修复/重新激活这个“管道”?
ruby-on-rails-3 - 如何调整 sprockets 加载 scss 文件的顺序?
我想影响我的 scss 文件放入最终 application.css 文件的顺序,因为我希望能够覆盖在另一个 scss 文件中定义的一些样式。
我不知道该怎么做。
亲切的问候,
尼尔斯
ruby-on-rails - rails 3.1 资产不可用
我开始玩 rails 3.1.rc4 但我遇到的第一个问题是资产不可用。我创建了一个全新的项目,在索引页面中,rails 图像给出了 404。实际上任何资产都可用。
我检查了
我试过了
也来自外壳
运气不好,所以我破坏了宝石组,然后又做了一个重新安装导轨,但到目前为止没有任何效果。
有任何想法吗?- 谢谢你
ruby-on-rails - Rails 资产管道导致问题
我试图让 tiny_mce 与我的 Rails 3.1 应用程序一起工作,它几乎可以工作。
我将它安装在 vendor/assets/tiny_mce 并包含在我的 application.js 引导程序中:
应用程序.js
现在,当我使用 ?debug_assets=true 查看我的页面时,它不会将文件与 sprocket 结合起来,并且一切都按预期工作。但是,如果我摆脱 ?debug_assets=true 那么它不再起作用。
似乎 TinyMce 在需要时会自动加载一些额外的 js 文件(lang 文件等),但这似乎不适用于 rails 3.1。任何想法如何解决这一问题?
感谢您的建议,我检查了请求日志,所需文件为:
tiny_mce 中有几十个不同的 js 文件,我假设它会根据您初始化它的配置加载不同的集合。我是否应该一次手动地将这些额外的 js 文件添加到我的 application.js 文件中,直到 rails 停止抱怨,或者是否有更通用或最佳实践的解决方案?谢谢
ruby-on-rails-3 - [[]]:Sass::Tree::FunctionNode 的未定义方法 `args=' 使用 rails 3.1 部署到 heroku
我有一个应用程序,我正在尝试使用 rails 3.1.0.rc5 部署到 Heroku Cedar 堆栈。我遵循的一些博客实现了向 cedar 和资产管道的迁移:
- http://metaskills.net/2011/07/29/use-compass-sass-framework-files-with-the-rails-3.1.0.rc5-asset-pipeline/
- http://devcenter.heroku.com/articles/rails31_heroku_cedar
- http://railsapps.github.com/rails-heroku-tutorial.html
在 git push 到 heroku 之后,我运行 assets:precompile 任务:
js 文件编译得很好,但是 Sass 炸弹编译 application.css.scss 时出现错误:
此处的完整输出和堆栈跟踪:https ://gist.github.com/1122683
bundle exec rake assets:precompile
在本地运行运行良好,没有错误。