问题描述
ruby '3.0.1'
'rails','~> 6.1.2'
我正在从 rails 项目中删除 Webpacker。我假设它最初是使用 rails new
和 webpacker 标志创建的,但我不确定。到目前为止,我所做的只是删除了 yarn、browsify、babel 等源文件,然后将我所有的 javascript 和样式表移至 app/assets
和 app/vendor
。
我还将此添加到 application.html.erb
:
<%= stylesheet_link_tag "application",media: "all","data-turbolinks-track" => "reload" %>
<%= javascript_include_tag "application","data-turbolinks-track" => "reload" %>
有一段时间,一切正常。我正在更正路径、修复小错误等。然后在我重新启动服务器一次后,出现了一个新错误,现在我卡住了。
Sprockets::Rails::Helper::AssetNotprecompiled in Universes#index
Showing /var/app/app/views/layouts/application.html.erb where line #8 raised:
application.css
以下是我目前所知道的:
- 我不使用 application.css。我有一个
app/assets/stylesheets/application.scss
。 - 如果删除样式表
stylesheet_link_tag
调用,application.js
会得到类似的调用。 - 我确定我已经安装了 sass-rails gem,所以它应该使用 application.scss。
- 我以前从未使用过基础 Rails 资产管道。只有 webpacker 的做事方式。所以我可以假设缺少非常基本的东西。
任何帮助将不胜感激。谢谢。
解决方法
对于 application.scss,您应该确保您的 gemfile 中有 sass-rails
gem。
除此之外,也许会有一些帮助:https://guides.rubyonrails.org/asset_pipeline.html#in-development
,Lam Phan 有我需要的东西。我的 assets/config/manifest.js
配置不正确。我将其恢复为:
//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css
然后确保 application.scss
和 application.js
在这些路径上。之后一切就轻松了。非常感谢您抽出宝贵时间。