"base href" добавляет путь к каталогу в URL-адресах маршрутизации с использованием ui-router

Резюме:

Когда используешь <base href="/prod/public/" />, это добавляет путь к каталогу в URL маршрутизации e.x.http://www.example.com/prod/public/home

Мое угловое приложение размещено в prod/public каталог.

в моем public/index.html:

<base href="/prod/public/" />

мои маршруты похожи на:

$stateProvider
     .state('home', {
      url: '/home',
      templateUrl: function($stateParams) {
          var path = 'app/users/views/home.html';
          return path;
      },
      controller: 'HomeCtrl'
})

Структура каталогов:

public_html
      -.htaccess
      - other folders
      - prod
           - public
                - app
                - index.html
           - bower.json
           - .htaccess
           - package.json
           - gulpfile.js
           - Readme.md

.htaccess внутри prod каталог:

RewriteEngine On
Options -Indexes
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ public/index.html [L]

и вот как я ссылаюсь на состояние в шаблоне:

<a ui-sref='home'>Go to home</a>

При нажатии на эту ссылку он перенаправляет на этот URL: http://www.example.com/prod/public/home

Требование:

URL должен быть http://www.example.com/home вместо http://www.example.com/prod/public/home

1 ответ

Решение

<base href="/prod/public/"/> в угловой маршрутизации не для того, чтобы установить корень документа / Маска URL, а для того, чтобы предварительно добавить URL с определенным URL в режиме HTML5.

Когда вы определяете маршрут, например /home Angular правильно установит URL как /prod/public/home, Если вы хотите, чтобы ваши URL-адреса не имели такой структуры папок, вам нужно будет поместить файлы в корневой каталог (особенно в случае общего хостинга) или изменить корневой параметр Nginix / Apache Document, чтобы он указывал на правильный путь. Затем вы можете установить, чтобы ваши URL читались как /home и т. Д.

Другие вопросы по тегам