unicornでMaterialize関連が読み込めないエラー【File to import not found or unreadable】


前説

グローバルIPをURLに打ち込むと、自分のアプリが出るらしい・・・
しかし!!!

エラーがでた

403エラー

とりあえず困った時はnginxかunicornのエラーを見ればいい。

log/nginx.error.logには

nginx.error.rb
 *20 directory index of "/home/masaya/madeit2/public/" is forbidden

こいつです。

/etc/nginx/nginx.conf
user  nginx;
worker_processes  1;

nginx -> [username]に変更

nginxを再起動

Terminal
$ sudo service nginx reload

nginx.error.rb曰く、403は消えた

またエラーがでた

unicorn.log
ActionView::Template::Error (Invalid CSS after "...t "./matelpage"": expected selector or at-rule, was "@import "materi..."):

やったこと①

config.assets.css_compressor = :sass
config.assets.enabled = true
config.assets.compile = true
$ rake assets:precompile
Sass::SyntaxError: Invalid CSS after "...t "./matelpage"": expected selector or at-rule, was "@import "materi..."

文法エラーでしたので/assets/stylesheet/application.scssのミスを修正すると直るかと思われます。

またまたエラーがでた

次はunicorn。

unicorn.rb
ActionView::Template::Error (File to import not found or unreadable: materialize/components/color-variables.)
application.scss
@import "./matelpage"
application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
//= require materialize
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require jquery.infinitescroll
//= require turbolinks
//= require_tree .

materialize/components/color-variablesを読み込めていないそうです。

やったこと①

直感で以下のコードを追加

application.scss
@import "materialize";

変化なし

やったこと②

gemを確認+bundle install+nginxとunicornを再起動

Gemfile
gem 'materialize-sass'

変化なし

やったこと③

"materialize/components/color-variables"を消しまくる。

application.scss
- @import "materialize/components/color-variables";
matelpage.scss
- @import "materialize/components/color-variables";

デプロイに成功した!

参考文献
https://github.com/mkhairi/materialize-sass/blob/master/README.md