如何为Angular 2中的脚本和样式指定基本href?

时间:2016-12-02 15:59:27

标签: javascript html css angularjs

我目前正在深入研究Angular 2,并且我对如何通过角度CLI index.html命令将样式和脚本注入build存在问题(我的意思是) angular-cli.json中定义的脚本和样式。

问题在于我在嵌套位置运行应用程序,例如: http://domain.com/my_app 虽然可以设置<base href="/my_app">,但注入的脚本和样式始终指向src到根域。即/而不是/my_app。当然,这会在尝试查看页面时产生404。

我直接为/dist投放。

Nginx conf

server {
    server_name domain.com;
    listen 80;

    location /my_app {
            alias /srv/www/my_app;
            index index.html;
            try_files $uri$args $uri$args/ $uri $uri/ /index.html =404;
            gzip on;
            gzip_types text/css text/javascript application/x-javascript application/json;
    }

/srv/www/my_app包含运行后/dist包含的内容:

ng build --environment=prod --base-href /my_app

我可以手动为输出index.html中的样式和脚本声明添加前缀,但这在我看来是一项不必要的繁忙工作。

有没有办法在ng build生成的index.html中为注入的样式和脚本声明指定基本href?如果我可以根据目标环境指定基本href,那就更好了,例如:

  • /my_app生产
  • /进行开发

1 个答案:

答案 0 :(得分:4)

在执行--deploy-url命令时,您是否尝试使用ng build参数?此选项表示 URL where files will be deployed

因此,在您的情况下,您可以尝试运行以下命令:

ng build --environment=prod --base-href my_app --deploy-url my_app