Удаление # Character, потому что приложение работает некорректно в Angular

Я использовал index.html в качестве мастера своей страницы, и у меня есть частичные просмотры с ng-view и $routeProvider. после удаления символа # из URL-адреса (с html5mode) мое приложение не работает с URL-адресом (за исключением маршрута по умолчанию). также откройте страницу, так как новая вкладка возвращает ошибку 404. приложение не может найти index.html. все работает, когда я нажимаю ссылку в браузере

<!DOCTYPE html >
<html ng-app="myApp">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<!-- CSS File -->
<!-- JS File -->
<title></title>
</head>
<body>
  <div class="container" ng-controller="RootController">
  <!-- Header Of Page -->
  <div class="header">
    <a href="" class="header_logo">
      <img src="img/logo.png">
    </a>
    <a href="" class="header_name">
    </a>
    <a href="{{ link }}" class="header_signOut">
    </a>
  </div>
  <!-- Separator Line -->
  <div class="separator"></div>
  <!-- Rendered By AngularJS -->
  <div class="myClass" ng-view></div>
  <!-- Footer -->
  <div class="footer"></div>
  </div>
</body>
</html>

это маршрутизация

when('/', {
  controller: OperatorController,
  templateUrl: 'html/operator.html'
}).

when('/simReport', {
  controller: SimReportController,
  templateUrl: 'html/simReport.html'
}).

person Soheil Ghahremani    schedule 18.08.2013    source источник
comment
Привет, вы можете вставить маршрутную часть js или создать fiddlejs   -  person JQuery Guru    schedule 18.08.2013
comment
я добавляю схему маршрутизации @JQueryGuru   -  person Soheil Ghahremani    schedule 18.08.2013
comment
index.html находится в корне   -  person Soheil Ghahremani    schedule 18.08.2013


Ответы (1)


У меня такая же проблема.

Это происходит потому, что когда вы загружаете страницу напрямую, а не по ссылке внутри вашего приложения, angular еще не загружен, и, следовательно, именно маршрутизатор сервера обрабатывает запрос, а не angular. Если вы используете сервер для обслуживания своего приложения angular, вам необходимо обновить его маршрутизатор, чтобы любой URL-адрес, который должен обрабатываться angular, должен быть перенаправлен на ваш index.html (чтобы angular мог загружать и выполнять маршрутизацию).

Если вы используете grunt/yoman для загрузки своего углового приложения, я могу отредактировать свой ответ с более подробной информацией.

person saintmac    schedule 18.08.2013
comment
мне нужно добавить рут на стороне сервера для каждого маршрута на стороне клиента? например, у меня есть 50 маршрутов в маршрутизации angularjs - person Soheil Ghahremani; 19.08.2013
comment
нет, вы можете использовать маршрут по умолчанию. Вот как я сделал это на своем крошечном веб-сервере node/coffeescript, который обслуживает только угловое приложение: app.get '/*', (req, res) -> res.sendfile('index.html') - person saintmac; 22.08.2013