前提・実現したいこと
プログラミング初心者です。
Ruby on Railsで作成中のウェブサイトの一部として、下記記事をもとにお問い合わせフォームを作っています。
https://www.imd-net.com/column/1731/
デザインは以下Bootstrapに頼っており、inquiry#indexには問題なく適用できたのですが、inquiry#confirmおよびinquiry#thanksにて一部読み込めていないのではないかという部分があります。
http://www.gettemplate.com/demo/progressus/contact.html
具体的には以下3点です。
発生している問題
- ロゴ画像が読み込まれない(Progressusの部分)
- <div class="navbar navbar-inverse navbar-fixed-top headroom animated slideDown" >の部分が、デフォルトでは874x100なのに対し、874x76しかなく、下にスクロールした時に残る少し透けたような色が最初から表示されている。
- 下部の地図が表示されない。
以上3点が、下記2行目、3行目のビューファイルで発生しています(3ファイルとも同じ階層にあります)。1行目のinquiry#indexでは問題がなく、特に該当部分と思われるコードを変更しているわけでもありません。この原因を究明したく、お力添え頂ければと思っております。
get 'inquiry' => 'inquiry#index'
post 'inquiry/confirm' => 'inquiry#confirm'
post 'inquiry/thanks' => 'inquiry#thanks'
inquiry_controller.rb
class InquiryController < ApplicationController
def index
@inquiry = Inquiry.new
render :action => 'index'
end
def confirm
@inquiry = Inquiry.new(params[:inquiry])
if @inquiry.valid?
render :action => 'confirm'
else
render :action => 'index'
end
end
def thanks
@inquiry = Inquiry.new(params[:inquiry])
InquiryMailer.received_email(@inquiry).deliver
render :action => 'thanks'
end
end
該当のソースコード
app/views/inquiry/confirm.html.erb
thanks.html.erbも下記部分は同一です。
<% provide :title, "Contact" %>
<!DOCTYPE html>
<html lang="en">
<body>
<!-- Fixed navbar -->
<div class="navbar navbar-inverse navbar-fixed-top headroom" >
<div class="container">
<div class="navbar-header">
<!-- Button for smallest screens -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"><span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
<a class="navbar-brand" href="home.html"><img src="assets/logo.png" alt="Progressus"></a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav pull-right">
<li><a href="home.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">More Pages <b class="caret"></b></a>
<ul class="dropdown-menu">
<<<中略>>>
<section class="container-full top-space">
<div id="map"></div>
</section>
<!-- JavaScript libs are placed at the end of the document so the pages load faster -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<script src="assets/js/headroom.min.js"></script>
<script src="assets/js/jQuery.headroom.min.js"></script>
<script src="assets/js/template.js"></script>
<!-- Google Maps -->
<script src="https://maps.googleapis.com/maps/api/js?key=&sensor=false&extension=.js"></script>
<script src="assets/google-map.js"></script>
</body>
</html>
試したこと
画像が読み込めていないということは、画像リンクの設定が不適切かと思い、リンクを変えてみたり、画像を他の場所に置いてみたりしましたが、解決されませんでした。(方向性は正しくても正解のリンクにたどり着いていないという可能性は否定できませんが)
他の2点に関してはお手上げ状態です。
繰り返しになりますが、inquiry#indexに関しては上記コードで問題なく読み込めています。
補足情報
app/views/layouts/application.html.erb
cssへのリンクはapplication.htmlにまとめてあります。
<!DOCTYPE html>
<html>
<head>
<title>Progressus | <%= yield :title %></title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="Sergey Pozhilov (GetTemplate.com)">
<link rel="shortcut icon" href="assets/gt_favicon.png">
<link rel="stylesheet" media="screen" href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,700">
<link rel="stylesheet" href="assets/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/font-awesome.min.css">
<!-- Custom styles for our template -->
<link rel="stylesheet" href="assets/css/bootstrap-theme.css" media="screen" >
<link rel="stylesheet" href="assets/css/main.css">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="assets/js/html5shiv.js"></script>
<script src="assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body>
<%= yield %>
</body>
その他追加情報が必要であればおっしゃっていただければ追加します。
よろしくお願いいたします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.10%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
moke
2017/02/09 10:12
# class Application に以下を追加 config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)はしましたか?
moke
2017/02/09 11:43
2,3については、参考にしたサイトか、jsやcssを見ないとなんとも言えません
ymatt
2017/02/09 21:58
コメントいただきありがとうございます。config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)を追加してみましたが、変化はありませんでした。2,3については、http://www.gettemplate.com/demo/progressus/contact.htmlのBootstrapをそのまま使用しています。inquiry#indexでは問題がなく、inquiry#confirmおよびinquiry#thanksでは問題が発生しているので、HTTPメソッドがGETかPOSTかで影響があるのかなとも思いましたが、該当しそうな記事はネット上で見つかりませんでした。HTTPメソッド以外の相違点も思いつきません。
moke
2017/02/10 09:55
1について再度precompileをしましたか?2,3については確認なしに他人のコードを使うのは如何なものかとということと。googlemapAPIは取得していますか?非商用及び誰でもアクセスできる状態でないと料金を請求されることを知った上でお使いくださいということもし地図を表示するだけで良いならhttps://inthecom.net/718とかをみてください
ymatt
2017/02/10 21:06
度々ありがとうございます。再度precompileというのは”$ rake assets:precompile”ということで良いのでしょうか。上記実行後、サーバーを再起動しましたが変化はありませんでした。コードのライセンスについてですが、商用可の無料テンプレートを使用していますので問題ありません。質問の仕方が悪くて申し訳なかったのですが、どうしても地図を表示させたいというわけではなく、同じ階層のビューファイルで、特にコードを変えてもいないのに、一方は問題がなく一方はうまく表示されていないという問題の原因を突き止めたい、という感じです(質問も編集させていただきます)。実物をお見せできない状況では、原因の推察はやはり難しいでしょうか。。。
moke
2017/02/11 14:35
すみません、読み落としてました、confirmとthanksはpostなんですね、そうするとrenderされているのはconfirm.html.erbではないかもしてません。とにかくrailsは、controllerを晒してください
ymatt
2017/02/12 21:00
こりずにお付き合いいただき感謝します。質問にinquiry_controller.rbの内容を追加しました。何がrenderされているかについてですが、cssおよびjsに関わる部分が正常に表示されておらず、confirm.html.erbに直接記述されているhidden field等は正常に表示されています。
moke
2017/02/13 13:34
post だから turbolinksが悪さをしているわけでもないし、まあapplication.html.erbが読み込めていないのが直接的な原因だと思うので、controllerにlayoutを指定するとか、最悪confirm.html.erbに直接cssとかへのリンクを書き込むしかないと思います。
ymatt
2017/02/25 21:26 編集
出張に出ており返信遅れ申し訳ありません。本当に二進も三進もいかないので、もう一度html/cssの基礎を勉強しようと思います。長々と本当にありがとうございました。