2011-03-17 37 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 2011-03-17 20:12:00

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加載),因爲我必須在同一頁面上支持多個替換。

反正我是看你用這個以將來自第三方網站的應用程式並,只要你堅持使用AJAX表單提交,一般用戶會毫無收穫。

+0

感謝BonkaBonka!這似乎是一個很好的選擇,但它比我需要的複雜一點。 – 2011-03-18 14:22:01

相關問題