我的一位朋友有一个静态网站。她想添加一个允许人们注册课程的注册表。使用ROR或Wordpress等重新创建网站不在范围内。我们还希望用户使用相同的域,无论他或她是在查看静态页面还是动态页面。
我可以想到用CGI做这个的最少侵入性的方式,最好是使用Ruby。但是,我真的不喜欢编写CGI代码,而且我更喜欢Sinatra和ROR等框架。
在这种情况下,是否真的可以使用高级框架?如果是这样,那么它比它的价值更麻烦吗?
提前致谢!
答案 0 :(得分:5)
如果我是你,我会在Sinatra做,也许使用像Nginx这样的前端重定向到你的Sinatra应用程序。如下所示:
location /myform{
proxy_pass myserver:6000;
}
你的Sinatra在6000端口运行.Sinatra非常简单,你可以在短时间内完成。 ROR我觉得这有点重。我们会一直为特殊需求/共享应用做这样的事情,即使它们已经是动态的。
答案 1 :(得分: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表单提交,普通用户就不会更聪明了。