Как установить базовый URL для приложения Angular - PullRequest
1 голос
/ 16 апреля 2019

У меня есть приложение Angular, созданное JHipster.По умолчанию он запускается в корневом каталоге / url и перенаправляет на /#/.Есть ли способ переопределить это на что-то другое?

edit

Извините, я должен перефразировать свой вопрос, так как он неверно истолкован во всех ответах ниже.Я хочу, чтобы мое сгенерированное JHipster Angular-приложение отличалось от /, например /crud/.Цель состоит в том, чтобы подать некоторый неангловый контент на /.Как я могу переместить все приложение с / на /crud/?И все же / обслуживается статическим index.html файлом?

Ответы [ 4 ]

2 голосов
/ 16 апреля 2019

Вы можете изменить его, используя <base href="/"> в src/index.html файле.

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>SiteFrontend</title>
    <base href="/test">   //<------ this line

    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
    <app-root></app-root>
</body>

0 голосов
/ 19 апреля 2019

Вот решение, которое ближе всего к тому, что я хотел:

Переименовать src/main/webapp/index.html в src/main/webapp/crud.html

Создайте новый файл src/main/webapp/index.html с любым статическим контентом, который вы хотите использовать на /. В качестве альтернативы вы можете использовать серверу Spring Boot Controller /.

Изменения в webpack / webpack.common.js:

Под new HtmlWebpackPlugin добавить эту запись:

filename: 'crud/index.html'

Под new CopyWebpackPlugin, добавить эту запись:

{ from: './src/main/webapp/index.html', to: 'index.html' }

и переименуйте шаблон:

template: './src/main/webapp/crud.html',

В разделе modules / rules / *. Html переименуйте также html-файл:

exclude: /(src\/main\/webapp\/crud.html)/

В файле crud.html я изменил базу на эту, как уже говорили другие:

<base href="/" />.

Это необходимо для поиска бэкэнд-API, которые все еще работают на /api/

Это были все изменения, которые я должен был сделать. Теперь / и /index.html будут обслуживать мою собственную страницу не-jhipster. Весь JHipster подается под /crud/index.html. Как только вы начнете навигацию, адрес в браузере покажет /#/, но это меня сейчас не особо беспокоит. Но буду рад услышать, как изменить это значение на /crud/.

0 голосов
/ 16 апреля 2019

Пожалуйста, выполните следующие действия:

  1. Набор useHash: false в app-routing-module.ts
  2. В index.html, изменить <base href="./" /> на <base href="/" />
0 голосов
/ 16 апреля 2019

Лучше сделать это при сборке проекта. Как это:

ng build --prod --base-href=/test/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...