Rails 6 的资产管道中不存在资产“application.js”
Posted
技术标签:
【中文标题】Rails 6 的资产管道中不存在资产“application.js”【英文标题】:The asset "application.js" is not present in the asset pipeline in Rails 6 【发布时间】:2019-09-18 15:23:03 【问题描述】:我正在创建一个 RoR-6 应用程序,我从 application.html.erb 文件的这一行中得到以下错误:
javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
我收到以下错误:
ActionView::Template::Error: The asset "application.js" is not present in the asset pipeline.
应用是通过运行rails new myapp -d postgres
创建的
我正在使用 rails 6.0.0.rc1
【问题讨论】:
【参考方案1】:将此行放在application.html.erb
:
<%= javascript_pack_tag 'application' %>
这对我有用。
【讨论】:
【参考方案2】:如果你不想使用Webpack,请将以下内容添加到config/initializers/assets.rb
:
Rails.application.config.assets.precompile += %w(application.js)
【讨论】:
【参考方案3】:您需要使用javascript_pack_tag
而不是javascript_include_tag
:
javascript_pack_tag 'application', 'data-turbolinks-track': 'reload'
这是必需的,因为 webpacker 在 Rails 6 中处理 javascript 编译。
【讨论】:
谢谢。这解决了问题。感谢您的快速回复。 值得注意的是,说 webpacker 在 Rails 6.0.0 中处理资产编译是不正确的 - webpacker 默认只处理 javascript 编译。 Rails Asset Pipeline 和 Sprockets 仍然用于 CSS、图像和其他资产类型。 在生产和使用 javascript_pack_tag 时遇到同样的问题,知道为什么吗?以上是关于Rails 6 的资产管道中不存在资产“application.js”的主要内容,如果未能解决你的问题,请参考以下文章