2016-01-05 2 views
0

Мы создали приложение с AngularJS, оно в настоящее время размещено на общем хостинге cPanel. Однако, когда мы обновляем любую страницу, на которой мы находимся? в URL. Он сломается.Обновление URL-адреса в AngularJS

Я много читал в Stackoverflow, я понимаю, что из-за того, что браузер не знает, какую страницу загружать, и поэтому нам нужно установить базовый url в заголовке. Мы попытались установить базовый url и сделали некоторые настройки htaccess, но он все еще не работает.

Пробуйте нажать на любую ссылку с веб-сайта и обновите эту страницу. Вы заметите, что это не сработало.

Любая душа может указывать на правильные направления, как мы можем это решить?

Редактировать 1: У меня есть данные в htaccess и обратите внимание на единственный URL-адрес с? откажется загрузить правильно.

Options +FollowSymLinks 
IndexIgnore */* 
RewriteEngine on 

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteCond %{REQUEST_URI} !/api 

# otherwise forward it to index.html 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^/* /index.html [NC,L] 

ответ

0

Проблема возникла не из htaccess, а из имени папки. Например,

config(function($stateProvider) { 
$stateProvider.state('search', { 
url: '/search?page&loc&seaters&owner&min_price&max_price', 

Проблема заключается в том, когда наша папка также называют поиск, Apache попытается перейти к первому искать папку (в связи с Htaccess), и потому, что они могут найти папку, он будет читать каталог папки ,

Мы исправили его, назвав пример папки: search-html и изменив все необходимые шаблоны для поиска-html, и он решает проблему.

0

Я попытался воспроизвести проблему, но не указал ни одного # тега в указанном URL. Не могли бы вы объяснить подробно.

+0

Вы пробовали это .config (функция ($ locationProvider) {$ locationProvider.html5Mode (истина); }) –

+0

Да, я сделал. Это помогло удалить #, но не решить проблему обновления, –

Смежные вопросы