angularjs - 如何为 grunt build设置 <base> 元素?

标签 angularjs gruntjs

我正在构建的最终应用程序将位于服务器上的/subdirectory 中。

将 angularjs 的 html5mode 设置为 true,这样我就可以丢失 # 符号了。但是我还需要设置

<base href="/subdirectory/"></base>

在开发过程中,我无法设置 'base' 元素,因为当我运行 grunt serve 服务器找不到大部分文件时。

当我执行 grunt build 时,开发然后可能设置 'base' 元素的最佳方法是什么?

谢谢。

最佳答案

我使用了 grunt 任务 usemin:

index.html

<!-- build:base /subdirectory/ -->
<base href="">
<!-- endbuild -->

Gruntfile.js

usemin: {
    html: ['<%= yeoman.dist %>/{,*/}*.html'],
    css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
    options: {
        dirs: ['<%= yeoman.dist %>'],
        blockReplacements: {
            base: function (block) {
                return ['<base href="', block.dest, '">'].join('');
            }
        }
    }
}

基本上我定义了一个名为 base 的自定义构建 block ,这样它在开发期间使用“”(或您在那里设置的任何内容)并在生产中使用来自构建 block 配置的值。

关于angularjs - 如何为 grunt build设置 <base> 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26560240/

相关文章:

gruntjs - Grunt sass 没有安装 ruby​​ 和 sass 吗?

node.js - Grunt --force 失败, Node 为 : bad option

javascript - ng-repeat 中的 Angular 自动触发特定指令

javascript - 将自定义指令添加到已有 Angular Directive(指令)的现有输入 [ng-model/ng-required]

javascript - 测试无法使用 Karma、Browserify、Angular 运行

javascript - 从 Controller Angular ng-hide 中的服务调用函数

javascript - 将 Grunt 集成到 Spring/Gradle 构建中的正确方法是什么?

javascript - 对比编辑后$resource结果修改情况

node.js - 无法使用自定义 Materialise Sass 文件和 GruntJs 覆盖 node_modules 中的 Sass 变量

angularjs - 如何使用 grunt 丑化一个有 Angular 的项目?