问题标签 [rails-sprockets]
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.
ruby-on-rails - 如何在 Ruby on Rails 3.1 中禁用资产管道(链轮)消息的日志记录?
默认情况下,在 Ruby on Rails 3.1 (RC1) 下,Sprockets 在 (dev) 日志中往往非常冗长:
我想降低详细程度或完全禁用它。
我假设有一种干净的方法来禁用或减少日志记录的详细程度,方法是在其中一个environment.rb
或development.rb
类似的配置行中添加一个配置行,以config.active_record.logger = nil
使 ActiveRecord SQL 语句静音。
ruby-on-rails - Rails 链轮 3.0 find_asset
我曾经使用rails-sprockets
2.x,并在电子邮件布局模板中使用以下内容来包含css
Rails.application.assets.find_asset('file').to_s.html_safe
但是,这在 3.x 中不再有效,rails-sprockets
建议使用
Rails.application.assets_manifest.assets['file.css']
这仅返回文件的字符串名称(如果存在)。我将如何获取文件的主体以便可以在视图中输出它?
ruby-on-rails - 如何使用 sprockets 将 rails 资产依赖项添加到环境变量中?
我做了以下js.erb:
我希望链轮在web_socket_server_url
更新时重新生成资产。
我尝试使用depend_on,但它只适用于文件。我还尝试在初始化程序中添加一个配置块(我希望在更改时重新加载所有资产,而不仅仅是相关的):
在看到 sprocket-rails https://github.com/rails/sprockets-rails/commit/9a61447e1c34ed6d35c358935bcae4522b60b48d的这个提交后,我有了这个想法
但这并没有像我预期的那样奏效。
理想情况下,我希望能够在我的初始化程序中注册依赖解析器,然后添加//= depend_on 'web-socket-server-url'
我的资产,这样只有资产会被重新加载。
作为一种解决方法,我可能会在 HTML 标记中添加配置,并在不使用 ERB 的情况下进入 javascript,但感觉不太好。
我怎么能用 sprockets 完成这项工作?
ruby-on-rails - 如何链接 Sprockets 3+ 处理器?
我正在尝试制作一个小宝石来呈现一些 javascript 并将其传递给 Sprocket 的 JST 处理器。所以文件看起来像foo.jst.bar
然后你可以通过调用它JST[foo]()
我无法弄清楚处理器链接是如何发生的。我认为它会通过注册的 mime 类型自动处理?由于 JST 处理器已注册处理application/javastcript+function
(请参阅:https ://github.com/rails/sprockets/blob/master/lib/sprockets.rb#L169 ),我需要做的就是像这样注册我的处理器:
这没有做任何事情。如果我忘记了链接并定义了我自己的JST
命名空间,它就可以正常工作。我觉得我错过了一些不链接到 JSTProcessor 的超级明显的东西。
ruby-on-rails - Rails 4.2.6 链轮在开发中不起作用
我不确定为什么会发生这种情况,但这让我发疯。我正在尝试将 rails 更新4.1.1
到最新的稳定版本4.2.6
。更新没有发生任何奇怪的事情,资产现在列在 assets.rb 中。
我发现它在将sprockets
gem更新为 时会刹车3.5.2
,因此将其强制恢复为2.11.0
,但这不是解决方法。
但是在开发模式下,config.assets.debug = true
头文件没有链接样式表,为什么?!
如果我尝试rake assets:precompile
创建的文件是空的。我忘记了什么吗?
和布局;
Rails.application.config.assets.precompile += %w( default.css )
在资产.rb
ruby-on-rails - Sprockets 错误 Sprockets::NotImplementedError: 自定义asset_path 助手未实现
尝试在本地预编译我的资产时,我得到以下信息
我一生都无法弄清楚为什么会发生这种情况-任何有关如何解决的建议都将不胜感激!
更新
仅当我添加具有以下内容的初始化程序时,我才能进行预编译:
但是,如果我这样做,当我推送到我的暂存环境时,来自 Bootstrap 的字形图标有一个空路径,因此不会渲染:
更新 2
如果我将初始化程序修改为以下内容,我会在我的预编译引导资产中为 glypicons 获得一个路径,但它不是预编译的 Glyphicon 文件,而是非编译的资产路径:
这是我的 gemfile.lock ,因为它与资产/链轮宝石有关:
sprockets - 如何从rails完全禁用turbo链接
我已经浏览了很多帖子和 turbolinks 文档,但我想我还没有完全掌握它。我正在尝试完全关闭 rails 5 应用程序中的 turbolinks。这就是我的做法
- 已移除
gem 'trubolinks'
//=require turbolinks
从 application.js中删除所有出现的data-turbolinks-track
从stylesheet_link_tag
和删除javascript_include_tag
application.html.erb 现在看起来像这样
application.js 文件:
和 application.css
我在考虑使用data-turbolinks=false
on body 标签应该有助于禁用此布局中所有页面的它。但这并没有帮助,页面无法加载并出现错误
在主页的这一行
<%= image_tag("pages/home/xyz_logo.png", class: "img-responsive", alt: "Customer") %>
如果我查看堆栈跟踪,ActionView 总是依赖于 turbolinks:
看起来 sprockets 仍然需要 turbolinks js 或者 image_tag url 需要它。我不想最终data: { turbolinks: false }
在每个链接或图像上添加一个。如何让这个工作?
ruby-on-rails-3.2 - 为生产预编译资产时,没有方法错误,[ ] 未定义 nil 类
在我的开发模式下,当我使用命令预编译应用程序的资产时
我收到以下错误
当我使用rails s命令在开发模式下运行我的服务器时,会出现一个错误,我认为这可能是导致预编译错误的原因,如下所示
我通读了 rails assets pipeline 和 sprockets,但似乎无法全神贯注并解决问题,因为我是 rails 框架的新手,任何方向或帮助将不胜感激。
解决方案 我已经编辑了文件
比如,从第 120 行开始,我在第 122 行添加了“puts 'path'”行,这样我就可以看到预编译错误来自的路径
我保存了文件然后再次运行
我看到我在 css 文件中使用了 sasss 辅助方法“image-url”,因此预编译器无法以某种方式访问该文件,我创建了一个扩展名为 css.scss 的新文件,这解决了我的问题,我可以'不能更好地解释它,因为我并不完全理解它,但设法从人们的经验,结帐,http ://guides.rubyonrails.org/asset_pipeline.html#css-and-sass 和How to reference images in Rails 4 中的 CSS。
ruby-on-rails - Rails:查找已在生产中编译的资产
我正在开发一个遗留应用程序,我刚刚发现它config.assets.compile
被设置true
为production.rb
现在,虽然我们将在 staging 中对其进行测试,但如果可以的话,我想找到应该成为precompile
数组一部分的所有资产。
我所做的是进入tmp/cache
目录并环顾四周:
我发现了我所期望的文件legacy.js
,我知道预编译中缺少该文件。我是否可能只需要将与我的域名匹配的文件添加到资产预编译中,然后就可以将其推送到生产环境,config.assets.compile = false
或者我应该寻找其他地方/文件来修复。
我确实找到了一堆assets
文件 - 像这样:
./assets/D1D/0F0/sprockets%2F663a54e3907dfc958d784233a6dd0e9a
并且其中的内容确实包含指向图像等的链接,但我可以看到那些指纹资产public/assets
(是的,我们实际上是在生产中预编译资产)。还是这些 sprockets 文件中的任何一个都指向存在问题并且应该修复的问题?
我想我的问题是,我怎样才能最容易地找到任何丢失的资产,而不仅仅是设置标志、推送到暂存和点击。
javascript - 使用 Rails 时如何在清单文件中读取 Sprockets 指令?
Rails 新手,所以请多多包涵……我今天在研究资产管道时正在查看清单文件(application.js),并且很好奇这些指令是如何//= require jquery
被读取的。这是 Sprockets 在后台做的事情吗?如何?为什么必须先注释掉指令,然后加上等号?如果我取消注释指令并在我的浏览器中加载 application.js 文件,我将不再看到 jquery 库内容。只是好奇这是如何在后台工作的。
另外,当我添加自己的自定义 css 样式表时,我是在 application.css 清单文件中添加一个 require 指令,还是添加样式表链接,例如<link rel="stylesheet" type="text/css" href="mystyle.css">
?还是我两者都做?我假设我不应该直接在清单文件中添加 css ...
谢谢!