URL-адрес sammy.js не найден в подкаталоге
Привет, я создаю спа с нокаутом, усилением и Сэмми.
Если я сейчас нажму на ссылку, как:
#/page?s=About
он ссылается на url.de/subdirectory/#/page?s=About, что верно, но консоль выдает следующую ошибку: GET url.de/About 404 (не найден), потому что это должно быть: url.de/subdirectory/About
Мой код Сэмми:
var app=$.sammy(function () {
// define prexecutes
// update parameters in appModel from request for all routes
this.before('', function() {
//setParameters(this);
});
// authenticate on any page except for login and logout routes
this.before({except: {path:/\/(login|logout|hp)/}}, function() {
});
// actual routes
// home
this.get('#/', function() {
appModel.page("home");
return false;
});
// content
this.get('#/page', function(eventContext) {
content(eventContext);
});
});
app.run('#/');
Как заставить Сэмми не игнорировать мой подкаталог, в котором находится мой сайт?
2 ответа
Вы можете попробовать с другим пользовательским определением маршрута, как это
this.get('#/page/:s', function(eventContext) { // where s is parametre
content(eventContext);
});
также используйте URL, как это
#/page/About // it will read 'About' as value of parameter 's'
вместо
#/page?s=About
Надеюсь это поможет
Я сам недавно столкнулся с подобной ситуацией. Я не смог найти какие-либо параметры конфигурации или обходные пути, которые позволили бы Sammy.js маршрутизировать в подкаталог. Мое решение состояло в том, чтобы создать виртуальный хост на сервере, на котором размещено мое приложение, с подкаталогом в качестве субдомена, чтобы поместить приложение в корень документа. В вашем случае виртуальный сервер будет отображаться из url.de/subdir/About
в subdir.url.de/About
, Я понимаю, что это может оказаться невозможным для вас (так как я не знаю, какой у вас контроль над вашей хостинговой средой), но это заставило меня снова двигаться довольно быстро. Надеюсь это поможет.
PS В качестве небольшого отступления я только что просмотрел источник Sammy.js по адресу https://github.com/quirkey/sammy, и оказалось, что подкаталог удален (по ошибке), чтобы исправить причуду IE. https://github.com/quirkey/sammy/blob/master/lib/sammy.js#L301 может быть проблемой.