如何为Angular应用程序设置基本URL

时间:2019-04-16 10:07:44

标签: angular jhipster

我有一个由JHipster生成的Angular应用程序。默认情况下,它在根/ URL上运行,并重定向到/#/。有没有办法将其覆盖到其他东西?

修改

对不起,我不得不改写我的问题,因为下面的所有答案都对它有误解。我想将我的JHipster生成的Angular应用程序放到/以外的其他地方,例如/crud/。目的是在/上提供一些非角度内容。如何将整个应用程序从/移动到/crud/?仍然有/由静态index.html文件提供服务吗?

6 个答案:

答案 0 :(得分:2)

您可以使用<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>

答案 1 :(得分:1)

使用 ng build --prod --base-href=/test 而不是 ng build --prod --base-href=/test/ 因为那样我不会加载图像

答案 2 :(得分:0)

在构建项目时最好这样做。像这样:

ng build --prod --base-href=/test/

答案 3 :(得分:0)

请按照以下步骤操作:

  1. useHash: false中设置app-routing-module.ts
  2. index.html中,将<base href="./" />更改为<base href="/" />

答案 4 :(得分:0)

这是最接近我想要的解决方案:

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/

答案 5 :(得分:0)

以下步骤仅在生产中将基本网址设置为/ crud,对我有用

    webpack.prod.js中的
  1. 在“插件”部分中添加以下内容:

    new BaseHrefWebpackPlugin({ baseHref: '/crud' })
    
  2. 在输出部分webpack.prod.js中的
  3. 中添加:

    publicPath: '/crud/',
    

在执行npm run build时,index.html将在baseHref的前面加上'/ crud'前缀,并在所有的CSS和url后面加上前缀'crud'。