2010-11-26 5 views
0

기본적으로 콘텐츠가 변경된 내 웹 사이트 페이지 소스 코드의 사본 인 몇 개의 정적 파일 (페이지)이 있습니다.정적 파일 (페이지)에 콘텐츠 추가

이 파일들은 다양한 방식으로 내 웹 사이트를 지원합니다 (동일한 형식을 유지).

<body> 

<div id="menu"> 

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

불행하게도 매월 또는 나의 메뉴 바 변경 및 I 수동으로 각 정적 파일을 업데이트해야 - :

예를 들어, 메뉴 부분이다. 각각의 정적 파일에는 동일한 메뉴가 있습니다.

업데이트 할 수 있고 정적 파일에 자동으로로드 할 수있는 하나의 메뉴 파일을 가질 수 있습니까?

몇 가지 더 많은 정적 파일을 만들 계획입니다. 누군가가 이것을 성취 할 수있는 방법을 제안 할 수 있다면 이것은 큰 도움이 될 것입니다.

답변

0

오 예. 일부 자바 스크립트 마법을 사용하여 페이지로드시 메뉴 막대를로드하고 menu.html에 보관하십시오.

+0

개인적으로 이러한 경우 메뉴가 표시되지 않습니다. 사이트가 없으면 할 수있는 사이트에 JavaScript를 사용할 수 없습니다. – Arsen7

+0

이것은 내가 봤어요. ==== "당신이 서버에 파일을 포함하고 대부분 지원한다면, html을 shtml이나 asp 등으로 바꿀 수 있습니다. include 가상 파일이나 파일에 common.htm 파일을 포함 시키십시오. 절대 경로 또는 <대한 -. 다음과 같이 코드의 구문은! # 파일 = "common.htm"를 포함 - -> 상대 경로. " –

0

한 가지 해결책은 생성 된 페이지를 응용 프로그램에서 직접 다운로드하기 위해 스파이더 (wget - 재귀)를 사용하는 것일 수 있습니다. 하나의 명령, 그리고 당신은 귀하의 사이트의 전체 사본을 가지고 있습니다. (예를 들어 --convert-links와 같은 유용한 옵션을 추가하십시오).

다른 옵션은 컨트롤러에 after_filter를 작성하고 파일에 생성 된 내용을 파일에 쓰는 것일 수 있습니다 (항상 아니지만, 예를 들어? refresh_copy = 1 매개 변수를 추가 할 때). 어쩌면 페이지 캐싱을 켜는 것이 적합할까요? 그러나 문제는 컨트롤러 동작을 그렇게 쉽게 트리거 할 수 없다는 것입니다.

전체 사이트를 복사하지 않으려면 특정 경로 또는 컨트롤러 (/ mirrorable/...)를 추가하고 스파이더를 실행하거나 수동으로 액세스하십시오 (파일).

0

모델없이 하나의 컨트롤러를 만들었습니다.

rails g controller staticpages 

나는 다음 "staticpages의 관점"에서 뷰 파일에서 "content_for"(정적 파일 (페이지에 묶여 "수율")를 통해 레이아웃에 대한 개별 변경을 가져온 레이아웃 파일을 생성 .

레이아웃의 보통 "수율"필름으로 정적 파일의 나머지 부분. 치료를 ​​작동합니다. 더 이상 메뉴 표시 줄을 업데이트 (예 : 약어, aboutthissite 등 등을 위해) 모든 작업은 자동으로 수행.

에 올바른 정적 파일로 이동 경로를 만들려면 다음을 사용하십시오. -

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 

- :
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"에 전달

그런 다음 웹 사이트의 링크 만 변경하면됩니다. (예 : < % = link_to "About this site",/정적/aboutthissite '%>)

및 비올라! 그 모든 일.

관련 문제