[обновлено ниже]
У меня возникла небольшая проблема при развертывании сайта на Apache с mod_wsgi с некоторыми функциональными возможностями javascript bookmarklet;Альфа-сайт доступен и используется здесь: stemhub.org .Проблема в том, что букмарклет (который представляет собой кнопку меню браузера) отправляет на страницу типа
http://stemhub.org/submit/http://the-users-link.com/here
, которая затем возвращает форму для сохранения метаданных о ссылке.Функция просмотра (приложение flask / werkzeug) проверяет базу данных, чтобы увидеть, была ли ссылка уже добавлена, а затем возвращает форму с уже существующим или вновь назначенным идентификатором ссылки, что, как я полагаю, может вызвать проблемы с синхронизацией.Очень странно, когда я впервые отправляю ссылку, я получаю страницу http://stemhub.org/submit/http://the-users-link.com/here
с ошибкой «not found» apache, но если я потом перезагружаю страницу, я получаю форму, как задумано.Журналы ошибок содержат сообщения об исключениях из потоков, но они также появляются, когда сайт работает должным образом.
Параллельно развертывается приложение на другом порту - stemhub.org: 5000 - он работает на Tornado и отлично работает, как и версия для локальной разработки.
Вот букмарклеты, на случай, если они являются проблемой:
рабочая версия порта 5000: javascript:(function(){window.open('http://stemhub.org:5000/submit/'+encodeURIComponent(window.location.href),'height=200,width=150')}())
версия проблемного порта 80: javascript:(function(){window.open('http://stemhub.org/submit/'+encodeURIComponent(window.location.href),'height=200,width=150')}())
ОБНОВЛЕНИЕ: По какой-то причине это относится к другому тегу, меняющему метод javascript encodeURIComponent
на encodeURI
все работает, как задумано, по крайней мере, в FF и Chrome.Однако в будущем приму совет Грэма Дамплтона о чем-то более разумном для этого.