如何为grunt构建设置<base>元素?

mag*_*n11 3 angularjs gruntjs

我正在构建的最终应用程序将位于服务器上的/子目录中.

对于angularjs,将html5mode设置为true,这样我就失去了#符号.但我也需要设定

<base href="/subdirectory/"></base>
Run Code Online (Sandbox Code Playgroud)

在开发过程中,我不能将'base'元素设置为当我运行grunt服务器时无法找到大多数文件.

在我进行咕噜声构建时,开发然后设置"基本"元素的最佳方法是什么?

谢谢.

rob*_*les 6

我使用了grunt任务usemin:

的index.html

<!-- build:base /subdirectory/ -->
<base href="">
<!-- endbuild -->
Run Code Online (Sandbox Code Playgroud)

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('');
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上我定义了一个名为的自定义构建块base,这样它在开发过程中使用""(或者你在那里设置的任何东西),并且用于生成构建块配置中的值.