使用angular-cli在Angular中为静态文件添加前缀路径

时间:2017-03-02 17:37:47

标签: javascript django angular typescript angular-cli

我有一个现有的django项目,我在/ static / path上提供静态文件。我正在将应用程序的一部分迁移到angular2,成为该站点的特定移动版本。

向index.html添加<base href="/">加载静态文件www.example.com/main.js在此处获取404。 向index.html添加<base href="/static/">会正确加载静态文件,但是当应用程序引导时,它会将url更改为/ static /(我正在使用路由器),尽管我的url应该是/ order /.

有没有办法使用base href作为/但是使用angular-cli为脚本和样式文件添加前缀

使用版本ng --version

@angular/cli: 1.0.0-rc.0
node: 6.9.1
os: win32 x64
@angular/common: 2.4.9
@angular/compiler: 2.4.9
@angular/core: 2.4.9
@angular/forms: 2.4.9
@angular/http: 2.4.9
@angular/platform-browser: 2.4.9
@angular/platform-browser-dynamic: 2.4.9
@angular/router: 3.4.9
@angular/cli: 1.0.0-rc.0
@angular/compiler-cli: 2.4.9

2 个答案:

答案 0 :(得分:11)

您可以使用--deploy-url为生成的静态文件的路径添加前缀。 ng build -d /static/。它将在生成的index.html中使用/static/为js文件的路径添加前缀,如下所示:

<script type="text/javascript" src="/static/inline.bundle.js"></script>

来自帮助文档:

--deploy-url (String) URL where files will be deployed.
    aliases: -d <value>, --deployUrl <value>

答案 1 :(得分:1)

使用角度CLI 6.1.1

这是我的操作方式,您需要使用构建标志--base-href

示例

ng build --prod --base-href=/dist/my-app/

然后我访问http://127.0.0.1:5500/dist/my-app/index.html这样的网站

官方文档参考here