2010-11-26 18 views
0

私はいくつかの静的なファイル(ページ)を持っています。これは基本的に私のウェブサイトのページのソースコードのコピーです。静的ファイル(ページ)へのコンテンツの追加

これらのファイルは、私のウェブサイトをサポートしています(同じフォーマットを維持しています)。

<body> 

<div id="menu"> 

<ul class="level1" id="root"> 
etc 
etc. until 
</ul> 
    </div> 

残念ながら毎月またはので、私のメニューバーの変更と私は手動で各静的ファイルを更新する必要があります - :

例えばメニュー部分があります。 それぞれの静的ファイルには同じメニューがあります。

メニューファイルを1つ更新し、静的ファイルを自動的に読み込むことは可能ですか?

さらにいくつかの静的ファイルを用意する予定です。誰かがこれを達成する方法を提案できるなら、これは大きな助けになるでしょう。

答えて

0

ああはい。いくつかのjavascriptの魔法を使って、ページの読み込み時にメニューバーを読み込んでmenu.htmlに保管してください。

+0

個人的には、このような場合はメニューが表示されません。私はそれがなくてもできると思われるサイトに対してはJavaScriptを有効にしません。 – Arsen7

+0

これは私がグーグルで調べたものです。あなたがサーバーにインクルードファイルを含めるとほとんどの場合、 htmlの名前をshtmlやaspなどに変更し、include仮想ファイルまたはファイルに common.htmファイルを含めることができます。絶対パス または ための<。 コードの は、構文は次のとおりです。<! - - #仮想= "/ common.htm" を含む>は! - #ファイル= "common.htm" が含まれます - - >相対パス。 " –

0

解決策の1つは、生成されたページをアプリケーションから直接ダウンロードするためにスパイダー(wget - 再帰的)を使用することです。 1つのコマンドで、あなたはサイトの完全なコピーを持っています。 (例えば--convert-linksのような便利なオプションを追加するだけです)。

もう1つのオプションは、コントローラにafter_filterを書き込んで、生成されたコンテンツをファイルに書き込むことです(必ずしもそうではありませんが、パラメータ?refresh_copy = 1を追加するなど)。たぶん、ページキャッシングをオンにするだけで適切でしょうか?しかし、問題はコントローラの操作を簡単に引き起こすことができなくなることです。

サイト全体をコピーしたくない場合は、特定のルートまたはコントローラ(/ mirrorable/...)を追加してスパイダーを実行するか、手動でアクセスしてください。ファイル)。

0

モデルなしでコントローラを1つ作成することになりました。

rails g controller staticpages 

私はその後、「staticpagesのビュー」のビューファイル(静的ファイル(ページ)で「content_for」に縛ら「利回り」を経由して、レイアウトに個別の変更をインポートしたレイアウトファイルを作成。

レイアウトで通常の「歩留まり」を搭載した静的ファイルの残りの部分。御馳走を動作します。これ以上のメニューバーを更新する(たとえば、略語、aboutthissiteなどなどのために)すべてが自動的に行わ。

へ正しいスタティックファイルを取得する: -

match 'static/:static_page_name'=> 'staticpages#show' (or in rails 2.x:- 
map.connect 'static/:static_page_name', :controller=> "staticpages", :action=> "show" 

「static_page_name」変数は、URLに「/静的/」の後に何を受け入れ、私は含んでshowアクションに設定したコントローラ「staticpages」にそれを渡さ: -

def show 
@static_page_name = params[:static_page_name] 
allowed_pages = %w(abbreviations aboutthissite etc, etc,) 
if allowed_pages.include?(@static_page_name) 
    render @static_page_name 
else 
    redirect_to '/'      #redirects to homepage if link does not exists 
end 

エンド

それから、私はウェブサイトのリンクを変更するだけでした。 (例:<%= link_to "このサイトについて"、/静的/ aboutthissite '%)

とviola!そのすべての作業。

関連する問題