Rails:Sprockets :: Rails :: Helper :: AssetNotPrecompiled正在开发中

Syd*_*ney 7 css ruby-on-rails sass

我对Rails相对较新,我正在尝试在开发环境中使用资产管道SCSS.但是,在我创建控制器,视图和css.scss文件后,我遇到以下错误:

Sprockets::Rails::Helper::AssetNotPrecompiled

这是错误消息:

资产未声明在生产中预编译.添加 Rails.application.config.assets.precompile += %w( public.css )config/initializers/assets.rb和重新启动服务器

我读到在开发过程中,资产即时编译,无需预编译.为什么会出现预编译错误?Rails是否认为我在生产而不是开发?

2016年3月1日编辑------

我刚刚意识到在config/initializers/assets.rb上添加文件是有效的.但这是正确的方法吗?我必须在assets.rb中手动添加所有css/js/jpg文件才能工作.我觉得这在某种程度上违反了DRY原则.

Ame*_*mza 22

//= link_directory ../javascripts .js
Run Code Online (Sandbox Code Playgroud)

将此添加到
app/assets/config/manifest.js
对我有用(在 rails 6 上工作)

  • 我必须使用 Rails 6 添加这两行才能使其工作 `//= link administrate/application.css //= link administrate/application.js`。 (2认同)

小智 21

我遇到了同样的问题,我修复了它,删除了 tmp 文件夹中的所有缓存文件

rm -rf tmp/cache/assets
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用,谢谢!(导轨 5.2.2 / 链轮 4.0.2 / 链轮-导轨 3.2.2) (2认同)
  • 谢谢!这是实际的解决方案。`rm -rf tmp/cache/assets/` (2认同)

Max*_*kas 9

对于那些从 rails 4 升级到 5-6 之后来到这里的人 - checkout manifest.js

app/assets/config/manifest.js
Run Code Online (Sandbox Code Playgroud)

如果没有指向 js 的链接 - 只需添加一个:

//= link_directory ../javascripts .js
Run Code Online (Sandbox Code Playgroud)


ald*_*n.h 8

请检查文件

config/environments/development.rb
Run Code Online (Sandbox Code Playgroud)

config.assets.debug = true(如果 TRUE 更改为 FALSE)


小智 7

这些都不对我有用(rails-5.0.7,sprockets-3.7.2,sprockets-rails-3.2.1):

config.assets.debug = false
config.assets.unknown_asset_fallback = true
Run Code Online (Sandbox Code Playgroud)

但是这样

config.assets.check_precompiled_asset = false
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢,这在 Rails 6.0.2.1 中也对我有用 (11认同)
  • 从字面上看,```config.assets.check_precompiled_asset``` 也对我有用。导轨版本 4.2.8 (2认同)
  • 为我工作,但为什么呢?应用程序突然开始抛出这些图像错误。将其放入development.rb 中使其再次工作。 (2认同)

小智 6

您可以通过以下代码行初始化该 scss 文件

Rails.application.config.assets.precompile += %w( applicationname.css )
Run Code Online (Sandbox Code Playgroud)

  • 需要更改上述内容的文件:config/initializers/assets.rb (3认同)

Sha*_*goz 5

assets.debug在Rails v5.1.5中,更改对我不起作用。我必须使用此选项: config.assets.unknown_asset_fallback = true