2011-03-17 3 views
2

친구가 정적 웹 사이트를 가지고 있습니다. 그녀는 사람들이 수업에 등록 할 수 있도록 등록 양식을 추가하고자합니다. ROR이나 Wordpress 등을 사용하여 웹 사이트를 다시 만드는 것은 범위에 포함되지 않습니다. 사용자가 정적 또는 동적 페이지를보고 있는지 여부에 관계없이 사용자가 동일한 도메인을 사용하기를 원합니다.기존 정적 사이트에 동적 콘텐츠를 "넣으려면"가장 좋은 방법

CGI를 사용하여 Ruby를 사용하는 것이 가장 바람직합니다. 그러나 CGI 코드를 작성하는 것을 좋아하지 않으며 Sinatra 및 ROR와 같은 프레임 워크에 훨씬 더 편안합니다.

이 상황에서 고급 프레임 워크를 사용할 수 있습니까? 그렇다면 가치가있는 것보다 더 큰 문제입니까?

미리 감사드립니다.

답변

5

내가 당신이라면 Sinatra에서이를 수행하고 Nginx와 같은 프런트 엔드를 사용하여 Sinatra 앱으로 리디렉션 할 수 있습니다. 따라서 다음과 같이하십시오 :

location /myform{ 
    proxy_pass myserver:6000; 
    } 

Sinatra는 포트 6000에서 실행됩니다. Sinatra는 매우 간단하며 짧은 시간 내에 처리 할 수 ​​있습니다. ROR 나는 이것에 대해 약간 무겁다 고 생각한다. 우리는 특별한 요구 사항/공유 응용 프로그램이 항상 동적 인 경우에도 항상 이와 같은 작업을 수행합니다.

+1

+1 Sinatra. – fl00r

1

동적 코드를 Javascript를 통해 정적 사이트에 삽입하는 앱을 개발할 수 있습니다. 나는 여기서 일하는 나의 프로젝트 중 하나를 위해 그것을한다. 그리고 그것은 받아 들일 수있는 해결책 인 것처럼 보인다.

빠른 HTML 샘플 :

<!doctype html> 
<html> 
<head> 
<title>Test</title> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<script type="text/javascript" src="loader.js"></script> 
</head> 
<body> 
<div id="customcontent" class="contentlib"></div> 
</body> 

loader.js :

$().ready(function() { 
    $('<style type="text/css"> ... </style>').appendTo('head'); 
    $('.contentlib').each(function() { 
     $.getScript($(this).attr('id')+'.js'); 
    }); 
}); 

customcontent.js :

$().ready(function() { 
    $('#customcontent').html(' ... '); 
}); 

이 그것이어야보다 조금 더 복잡하다 (div의 id에 기초한 두 번째 스크립트로드) 동일한 페이지에서 여러 대체를 지원해야하기 때문에.

어쨌든, 제 3 자 웹 사이트에서 앱을 주입하는 데 사용하는 것을 볼 수 있으며, AJAX 양식 제출을 계속 사용하는 한 평범한 사용자는 더 현명하지 못합니다.

+0

감사합니다. BonkaBonka! 이것은 좋은 대안처럼 보이지만, 필요한 것보다 조금 더 복잡합니다. –

관련 문제