2015-10-28 2 views
0

Мне интересно, что я сделал неправильно или что мне не хватает. Я пытаюсь использовать html5mode с базовым href в качестве подкаталога. Если я перехожу на маршрут с этой базы и перезагружаюсь, страница пытается вернуться обратно в подкаталог.Перезагрузка страницы Angular html5mode с базой в качестве подкаталога

Если это не имеет никакого смысла, позвольте мне показать вам, как я настроил ...

В моем app.js файл я поставил:

$locationProvider.html5Mode(true) 

В моем индексе. HTML-файл, в моем теге я установил:

<base href="/subdirectory/"> 

Таким образом, если я перейти к http://url.com/subdirectory все хорошо.

Если я затем щелкните ссылку, чтобы посетить http://url.com/subdirectory/subpage, все это хорошо.

Однако, если я ПЕРЕХОДЯ на подстраницу, ИЛИ, если я попытаюсь перейти непосредственно к этой подстранице, она не будет отображаться. На самом деле, я считаю, что браузер думает, что пытается начать с http://url.com вместо того, чтобы начать с http://url.com/subdirectory/

Может ли кто-нибудь, кто испытал подобную проблему, объяснить это решение?

Я стучал головой о стену. Я бы очень признателен. Благодаря!

+0

звучит, как вы не настроили сервер правильно – charlietfl

+0

@charlietfl Простите меня, если я скажу, что я немного новичок, когда речь идет о конфигурации сервера. Я искал некоторую информацию о файлах .htaccess, но мне нелегко с этим справиться. Вместо того, чтобы просто комментировать, что я не сделал что-то правильно (потому что это, вероятно, очевидно), вы думаете, что можете предложить решение и/или указать мне в правильном направлении? Спасибо. –

+0

не могли делать предложения, потому что разные типы серверов используют разные системы конфигурации. Также мы не знаем, что еще у вас есть на сервере. Угловой использует то, что сервер видит в качестве виртуальных каталогов, если вы установите 'html5Mode'. Если вы не установите, что он будет использовать хеш и не будет влиять на сервер – charlietfl

ответ

0

Необходимо настроить сервер для перенаправления всех запросов на http://url.com/subdirectory/subpage в том же месте, что и http://url.com/subdirectory/.

+0

Можете ли вы направить меня о том, как это сделать? Я начинаю, когда дело доходит до конфигурации сервера. Спасибо! –

+0

Какой сервер вы используете? Apache? –

0

Так что это было решение.

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} -s [OR] 
    RewriteCond %{REQUEST_FILENAME} -l [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^.*$ - [NC,L] 
    RewriteRule ^(.*) /subdirectory/index.html [NC,L] 
</IfModule>