如何让我的角度站点在根目录中呈现而不是在文件夹中呈现?

时间:2017-06-21 15:05:29

标签: angular angular-cli

我的Angular 4网站运行良好,但它运行在〜/ app /文件夹中。因此它出现在 http://example.com/app 中,但我只是希望它出现在 http://example.com

现在我有:

的package.json

ng build --base-href /app/

.angular-cli.json

  "outDir": "./../app"

哪个效果很好,但是如果我将它们改为(看起来它会起作用):

的package.json

ng build --base-href /

.angular-cli.json

  "outDir": "./../"

它不会在根中呈现 - 我缺少什么?!谢谢!

修改 这是我的tsconfig.json:

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2016",
      "dom"
    ]
  }
}

我的src / tsconfig.app.json:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "module": "es2015",
    "baseUrl": "",
    "types": []
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ]
}

我现在意识到我可能希望它位于自己的文件夹中,但只是看起来它位于根目录,它也能正常工作!

1 个答案:

答案 0 :(得分:1)

如果您使用的是角度cli,则会在 index.html 或服务器指向的任何.html文件中设置<base href="/">。尝试删除它并在providers: []下的 app.module 中设置基本href。{ provide: APP_BASE_HREF, useValue: '/' }

我不确定这是否适合您,因为每个环境都有所不同。无论如何,这适用于我们的团队。此外,如果你这样做,你不应该在构建时使用这个标志--base-href。