• 締切済み

ruby on rails layout を使用

layoutを使用して、共通のヘッダーフッターを定義しています。 そのファイル内で、javascript_include_tag や、stylesheet_link_tag を行うようですが、 共通のlayoutでそれを行ってしまうと、 ページによって別のjsファイルを追加で読み込むことが出来ないのでは? と思っています。 これは通常どのように解決するのでしょうか? それともページごとにlayoutファイルを用意するような感じに作るのが普通ですか?

  • Ruby
  • 回答数1
  • ありがとう数0

みんなの回答

回答No.1

content_forメソッドを使って差し挟むのが有効な方法ではないかなとおもいます ヘッダーの中で以下の様に記述しておいて、yileldの中にコンテンツを挿入できるようにしておいて <head> <title>Title</title> <%= stylesheet_link_tag "application" %> <%= yield :style_after %> <%= javascript_include_tag :application %> <%= yield :javascript_after %> <%= csrf_meta_tags %> </head> あとはそれぞれのVIEWで特殊なスタイルシートなどの追加が必要になったら <%= content_for :style_after do %> <%= stylesheet_link_tag "hoge" %> <% end %> の様に記述すると、hoge.cssを追加で読み込むように指定できます

関連するQ&A

  • 複数のページで使用する共通のレイアウトについて

    なるべく(X)HTML+CSSでサイトを作ろうと思っているのですが、 ヘッダ、フッタ、メニューなどの複数のページに及ぶ共通のレイアウト部分を CSSで一括で管理する方法はないのでしょうか? JavaScriptでの方法は分かるのですが。。。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • htmlでヘッダやフッタを共通化したい

    ヘッダ、サイドバー、コンテンツ、フッタというレイアウトで 100ページぐらいあるWebサイトを構築する場合、 ヘッダやフッタに変化がないのであれば、共通化したくなります。 (変更があった時に、1箇所変更すればいい、という風にしたいため) そこで、例えば、PHPが使えるところであれば、includeすればいいのですが、 使えない場合、JavaScriptを使えば可能ではあると思います。 しかし、JavaScriptはOffにされた時のことを考えると このやり方はリスクがあるような気がします。 そこで、知りたいのですが、htmlを共通化したい場合、 PHPなどを使う以外に、どんなやり方があるのでしょうか? できれば、サーバサイドに仕込む方法ではないやり方でお願いします。

    • ベストアンサー
    • HTML
  • SSIでレイアウトが崩れる?

    SSI超初心者です。よろしくお願いします。 HPのメンテが大変になってきたため、共通部分のヘッダー・メニュー・フッターを外部ファイル化してSSIのインクルード文で読み込もうとしています。正常表示されていた元のHTMLファイルからカット・ペーストで外部ファイルを作成し、元部分にはインクルード文を挿入したうえでSHTMLファイルとして保存しました。 一応これでそれなりの表示にはなるのですが、微妙(10~20pxほど)にレイアウトがあちこち崩れて困っています。 とくにHTMLページからSHTMLページにリンクで行くと、全体が20pxほど下にずれているため、「がたっ!」が明白です。HTMLページからHTMLページへの移動ではそれは起こりません。 原因と対処方法が分かる方がいらしたら教えてください。超初心者なので、見当違いの質問でしたらごめんなさい。

    • ベストアンサー
    • HTML
  • HPで各頁に共通したヘッダーhtml全部をつけたい

    ホームページで各ページに共通したヘッダーを JavaScriptのdocument.write()を利用してつけようとしています。 OSはwindows Xpで、制作ツールは、alphaEDITを使用しています。 1.「header.js」ファイルを用意 document.write("<header.html>header"); 2.「index.html」を用意 <html> <head></head> <body> <script language="JavaScript" src="header.js"></script>   中身 </body> </html> 3.スタイルシートsample3.cssを用意 4.header.html を用意 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><title>ヘッダー</title> <meta content="text/html; charset=shift_jis" http-equiv="Content-Type"> <link rel="stylesheet" type="text/css" href="sample3.css"> <script language="JavaScript" src="func.js"></script> </head> <body> (かなり長いので省略) <p>&nbsp;</p></body></html> これで「index.html」を実行しますと、   header    中身 と表示されます。 headerという文字ではなく、header.html 全部を表示し、かつスタイルシートも反映させたいのですが、どうすればいいですか? 教えて下さい。 参考にしたURL 各ページに共通したヘッダー(フッター)をつける http://tagland.net/technique/common_header.html

  • ホームページ レイアウトについて

    ホームページ作成について質問です。 複数ページのホームページの内、全ページ共通の罫線や画像(ヘッダー部、フッター部など)のレイアウト微調整を スタイルシートで設定したい、というのが目標ですが、そのレイアウト微調整を position:absolute; で行っていますが間違っているのでしょうか? 上記を設定したオブジェクトは確かに完全に任意の位置に配置できるのですが、 位置を指定していないHTMLだけに記述されたオブジェクトとレイアウトが重なったりしてしまいます。 全てのオブジェクトの位置をスタイルシートで指定すればそれも回避できると思うのですが、 そうするとひとつのHTMLファイルだけのスタイルシートになってしまうし、スタイルシートはそういう使い方するものではないんじゃないか、と思ってます。。 (そもそも共通設定ファイルにポジションの固定値を記述する事自体、 間違ってる気がしてます) スタイルシートの位置指定を使用しないで左寄せ、中央、右寄せ、以外の レイアウト調整って可能なのでしょうか? また、ホームページの完全な任意レイアウトの際のセオリー等が ありましたら教えていただきたいです。 以上、宜しくお願い致します。

  • ヘッダーやフッター全ページ共通部分の生成

    全ページ共通のヘッダーやフッターを外部ファイルとして持ち、PHPで表示させるやり方があると思うのですが(すみません表現が間違ってるかもしれませんが)、拡張子は全て.phpにせざるを得ないでしょうか? SSIでもJavascriptでもなく共通をファイルを使い回す方法は他にないでしょうか?

    • 締切済み
    • PHP
  • floatを使わずに、cssレイアウトって可能でしょうか?

    例えば、現在見ているこのページのように、ヘッダーとフッターがあり、コンテンツが左右二つのカラムで成り立っているようなレイアウトを、floatでなくpositionで、レイアウトすることは可能でしょうか? (その際、左右どちらのカラムの方が、高さが高くなっても、レイアウトが崩れないように。) floatを使いたくない理由は、親ボックスからはみ出さないように、ハック(clearfix)を使わないといけないからです。

    • ベストアンサー
    • CSS
  • サイトの共通ヘッダーのHTMLソース管理について

    PHPを用いない、HTMLのみのサイトの 共通ヘッダーやフッターを1ファイルで管理するため、 SSIで、<!--#include file=\"***.html\" -->と設定し、 読み込むファイルは拡張子を.htmlとしたいです。 ヘッダーやフッターには、テキストリンクや画像のみをおくこととします。(プログラム的な動作はしない) みなさんは、ヘッダーやフッターのデータをどのように管理されているでしょうか。 DreamweaverのTempleteやLibraryを使っていますか。 SSIを使っていますか。 includeをするためだけにPHPをつかっているのでしょうか。

    • ベストアンサー
    • HTML
  • Rails3でAjaxを使いたい

    どなたが知識をご教授下さい。 Rails3でAjaxのごく普通のハイパーリンクを作成したいのですが、うまくいきません。 /users/index.html.erb <div id="hoge"> <%= link_to "ajax",{:action => 'draw'},:remote => true %> </div> -- /users/_draw.html.erb ~いろいろ内容~ -- /users/draw.js.erb $('#hoge').html("<%= escape_javascript(render :partial => 'draw' )%>"); -- /users_controller.rb def draw ~いろいろ処理~ end -- ルーティング match 'users/draw' => 'users#draw' -- application.html.erb <%= javascript_include_tag :defaults %> -- gemfile gem 'jquery-rails' 以上のように処理するよう様々なサイトや書籍にはありましたが、「Templete Missing」のエラーが出てしまいます。かれこれ5時間以上ハマってまして、、、 どなたか知識をご教授頂けたら幸いです。 *メモ アクションdrawに渡ったときに、 「request.xhr?がfalse」ということは、ajax通信できていないということでしょうか???

    • ベストアンサー
    • Ruby
  • CSSでのレイアウトについて

    私は現在サイトを開設しているのですが、一から独学でHTMLを学んで分からない事があれば調べて作成してきました。 使用しているのはHTML、CSS、JavaSceript、SSIです。 見た目は自信あります。ただある程度知識がある方がソースを見たら”全然分かってないだろうな”というのがすぐにバレるぐらい酷いです。 調べて分かった事は積極的に取り入れてきました。 以前はHTMLのみで作成していたんですが、外部ファイルを使いJavaScriptやCSSをまとめています。以前に比べだいぶ簡潔なソースになり、汎用性も上がったと自負しています。 ただレイアウトは依然tableレイアウトです。 その為レイアウトをいじろうと思うと全てのファイルを修正しなければなりません。ファイル数は100を超えてます。 そこで詳しい方にお聞きしたいのですが、 ・tableレイアウトからCSSでのレイアウトに移行するのは難しい事ですか? レイアウトって聞くだけで避けてきたので、いざ移行してみて今まで作成してきたデザインが崩れるのではないかと不安になってきます。 ・下記のサイトのようなレイアウトを最近結構見かけます。 http://www.yamaga-fc.com/ 私もいづれこのようなレイアウトにしたいのですが、これは何というレイアウトでしょうか? 検索してもこのようなレイアウトの作り方が掲載されてるサイトが見つからなくて困ってます。 ヘッダーとフッターが100%。真ん中が80%ぐらいのレイアウト。 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

    • ベストアンサー
    • CSS

専門家に質問してみよう