Лучший способ «вставить» динамический контент в существующий статический сайт - PullRequest
2 голосов
/ 17 марта 2011

У моего друга есть статический веб-сайт.Она хотела бы добавить регистрационную форму, которая позволила бы людям регистрироваться для занятий.Повторное создание веб-сайта с использованием ROR или Wordpress или чего-то подобного не входит в сферу применения.Мы также хотим, чтобы пользователь использовал один и тот же домен, независимо от того, просматривает он или она статическую или динамическую страницу.

Наименее навязчивый способ сделать это с CGI, предпочтительно с Ruby.Тем не менее, я действительно не люблю писать CGI-код, и мне гораздо удобнее работать с такими фреймворками, как Sinatra и ROR.

Действительно ли возможно использование расширенного фреймворка для подобных ситуаций?Если так, то это больше проблем, чем стоит?

Заранее спасибо!

Ответы [ 2 ]

5 голосов
/ 17 марта 2011

На вашем месте я бы сделал это в Sinatra и, возможно, использовал бы интерфейс, такой как Nginx, для перенаправления в ваше приложение Sinatra. Так что-то вроде:

  location /myform{
    proxy_pass myserver:6000;
  }

Где ваша Sinatra работает на порту 6000. Sinatra очень прост, и вы, вероятно, сможете сделать это за короткое время. ROR Я думаю, что это немного тяжело для этого. Мы делаем такие вещи постоянно для особых нужд / общих приложений, даже когда они уже динамичны.

1 голос
/ 17 марта 2011

Вы можете разработать приложение, которое внедрит динамический код в ее статический сайт через 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), так как я должен поддерживать множественную замену на одной странице.

В любом случае, я мог бы видеть, как вы используете это, чтобы добавить свое приложение со стороннего веб-сайта, и, пока вы будете придерживаться использования форм AJAX, средний пользователь не будет мудрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...