Мы используем магистральную маршрутизацию, mod_rewrite, requirejs. Приложение находится в папке, а не в веб-корне, поэтому для изображений, css и js файлов требуются относительные ссылки на папки (если бы мы могли использовать абсолютные папки, которые загружали файлы).Как динамически установить базовый тег?
При доступе к маршруту с завершающим косой чертой ни один из js и css-файлов не загружается правильно, если в заголовке нет соответствующего базового тега. Например:
<base href="//localhost/myapp/" />
Это решение работает. Проблема в том, что нам нужно изменить шаблон базового тега, чтобы мы могли иметь dev и производственные версии кода. Но для загрузки js-файла переменная wont работает без базового тега.
Чтобы убедиться, что я сделал стандартные исправления для позвоночника. Закрепить дополнительный слеш (/):
routes: {
'faq(/)':'jumpToText',
'register(/)':'jumpToForm',
},
И установка корня в истории
Backbone.history.start({pushState: true, root: "//localhost/myapp/");
Проблема, как представляется, неразрешимый mod_rewrite вопрос. Поэтому последняя мысль состоит в том, чтобы динамически установить базовый тег.
Как мы окопались больше мы решили использовать для компиляции и push метод с использованием gruntjs. Grunt позволяет хранить vars в yaml, а затем подставлять их во время генерации кода. Это больше работает, но работает хорошо http://gruntjs.com/. – punkael