#解決したいこと
Ruby on Rails6 でfullcalendarを使用した際に、本番環境で、レイアウトが崩れてしまいます。
本番環境
ローカル環境
CSSの部分の記述かと思い、
app/assets/stylesheets/application.css
*= require_tree .
*= require_self
*= require fullcalendar
*/
の記述を行うと、
Sprockets::FileNotFound in Events#index
Showing /Users/hamadaryuya/projects/table-tennis-note/app/views/layouts/application.html.erb where line #8 raised:
couldn't find file 'fullcalendar' with type 'text/css'
Checked in these paths:
と表示がされてしまいます。
rails 6がWebpackerに変更になったことによるものかと思うのですが、どのようにfullcalendarを反映させれば良いのかがわかりません。
#コード
app/assets/stylesheets/application.css
/* * This is a manifest file that'll be compiled into application.css, which will include all the files * listed below. * * Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's * vendor/assets/stylesheets directory can be referenced here using a relative path. * * You're free to add application-wide styles to this file and they'll appear at the bottom of the * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS * files in this directory. Styles in this file should be added after the last require_* statement. * It is generally better to create a new file per style scope. * *= require_tree . *= require_self *= require fullcalendar *= */ * { box-sizing: border-box; }
app/javascript/packs/application.js
// This file is automatically compiled by Webpack, along with any other files // present in this directory. You're encouraged to place your actual application logic in // a relevant structure within app/javascript and only use these pack files to reference // that code so it'll be compiled. require("@rails/ujs").start() require("turbolinks").start() require("@rails/activestorage").start() require("channels") require("../calendar") // Uncomment to copy all static images under ../images to the output folder and reference // them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>) // or the `imagePath` JavaScript helper below. // // const images = require.context('../images', true) // const imagePath = (name) => images(name, true)
application.html.erb
<!DOCTYPE html> <html> <head> <title>TableTennisNote</title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> </head> <body> <header class="header"> <div class="header__bar row"> <h1 class="grid-6"><a href="/">卓球共有ノート</a></h1> <% if user_signed_in? %> <div class="user_nav grid-6"> <%= link_to "ログアウト", destroy_user_session_path, method: :delete %> <%= link_to "投稿する", new_event_path, class: "post" %> </div> <% else %> <div class="grid-6"> <%= link_to "ログイン", new_user_session_path, class: "post" %> <%= link_to "新規登録", new_user_registration_path, class: "post" %> </div> <% end %> </div> </header> <%= yield %> </body> </html>
また、heroku logを確認したところ、
Process exited with status 143
Stopping all processes with SIGTERM
という表記がございました。
デベロッパーツールと
でローカル環境と見比べた結果、
本番環境には、
mixed content: the page at でりせっとCSSの部分でエラーが生じていたため、リセットCSSの記述を削除してpushし、確認を行いました。
デベロッパーツールのコンソール上でエラーは消えたのですが、表示は変わらないままでした。
以上が主な点になるかと思います。
勉強不足で申し訳ございませんが、いろいろ検索したのですが、方法が分からなかったのでどなたか教えていただけると幸いでございます。
ご確認よろしくお願いいたします。