2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

本番環境でプリコンパイルができませんよ。。

Last updated at Posted at 2022-05-31

はじめに

Rails Tutorialを学習中に下記のエラーが発生しました。

terminal
Minitest::UnexpectedError:         DRb::DRbRemoteError: Asset `application.css` was not declared to be precompiled in production.
        Declare links to your assets in `app/assets/config/manifest.js`.
        
          //= link application.css

まず開発環境でレンダリングを試しても問題なかったので、エラー文通り 本番環境で稼働する際にプリコンパイルできないし宣言されてないよ!! と怒られたみたいです。。。

開発環境

  • HostOS: windows11 Home
  • GestOS: ubuntu/xenial64
  • ruby: 2.7.5
  • Ruby on Rails: 6.1.6

なぜ発生したのか

静的アセットやCSSは、sprocketsでコンパイルしています(動的アセットはwebpacker。rails6.x以降のデフォルト設定)。

cssの拡張言語であるsass(厳密にはscss)で記述しており、cssからsassに変更した際にプリコンパイルの設定ファイル(app/assets/config/manifest.js)を変更していないのが原因でした。

app/asstes/config/manifest.js
//= link_tree ../images
// = link_directory ../stylesheets .css ←ここ

解決方法

修正方法は、とても簡単です。

cssの管理は、application.scssで行っています。

app/assets/stylesheetes/application.scss
@import 'bootstrap-sprockets';
@import 'bootstrap';
@import 'mixin';
@import 'partials/*'

ですので、先程のmanifest.jsをファルダではなくファイルを直接参照するように設定します.

app/assets/config/manifest.js
//= link_tree ../images
//= link application.css ←追加

これで先程のエラーは解消することができました‼


参考文献

Asset application.css is not declared but it is declared in manifest
Rails 7.0でアセットパイプラインはどう変わるか

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?