我的一位朋友擁有一個靜態網站。她想添加一個登記表,允許人們註冊課程。使用ROR或Wordpress或類似的東西重新創建網站不在範圍內。我們還希望用戶使用相同的域,而不管他或她是否正在查看靜態或動態頁面。將「動態內容」「放入」現有靜態網站的最佳方式
我能想到用CGI做這件事情的最少侵入性方式,最好使用Ruby。但是,我真的不喜歡編寫CGI代碼,而且我更喜歡像Sinatra和ROR這樣的框架。
對於這種情況,甚至可能使用高級框架嗎?如果是這樣,那麼它比它的價值更麻煩嗎?
在此先感謝!
我的一位朋友擁有一個靜態網站。她想添加一個登記表,允許人們註冊課程。使用ROR或Wordpress或類似的東西重新創建網站不在範圍內。我們還希望用戶使用相同的域,而不管他或她是否正在查看靜態或動態頁面。將「動態內容」「放入」現有靜態網站的最佳方式
我能想到用CGI做這件事情的最少侵入性方式,最好使用Ruby。但是,我真的不喜歡編寫CGI代碼,而且我更喜歡像Sinatra和ROR這樣的框架。
對於這種情況,甚至可能使用高級框架嗎?如果是這樣,那麼它比它的價值更麻煩嗎?
在此先感謝!
如果我是你,我會在Sinatra做它,也許使用像Nginx這樣的前端重定向到你的Sinatra應用程序。因此類似於:
location /myform{
proxy_pass myserver:6000;
}
您的Sinatra在端口6000上運行的地方。Sinatra非常簡單,您可以在短時間內完成此操作。我認爲ROR有點沉重。我們始終爲特殊需求/共享應用程序這樣做,即使它們已經是動態的。
您可以開發注入動態代碼到她通過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表單提交,一般用戶會毫無收穫。
感謝BonkaBonka!這似乎是一個很好的選擇,但它比我需要的複雜一點。 – 2011-03-18 14:22:01
+1對於Sinatra。 – fl00r 2011-03-17 20:12:00