Javascript 把手部分和咕噜声:找不到部分

Javascript 把手部分和咕噜声:找不到部分,javascript,gruntjs,handlebars.js,handlebarshelper,Javascript,Gruntjs,Handlebars.js,Handlebarshelper,对于我的小单页应用程序,我使用Handlebar和Grunt.js来编译文件。 我找到了一个可以扫描指定文件夹并生成具有特定Handlebar.registerPartial的文件的文件,但当我编译文件时,我得到了 Uncaught Error: The partial templates/partials/footer could not be found 恐怕我搞乱了调用不同函数的顺序,但我不明白它是如何工作的 My index.html <!DOCTYPE html> <

对于我的小单页应用程序,我使用Handlebar和Grunt.js来编译文件。 我找到了一个可以扫描指定文件夹并生成具有特定Handlebar.registerPartial的文件的文件,但当我编译文件时,我得到了

Uncaught Error: The partial templates/partials/footer could not be found
恐怕我搞乱了调用不同函数的顺序,但我不明白它是如何工作的

My index.html

<!DOCTYPE html>
<html>
  <head>
    <title> My app </title>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
  </head>

  <body>
  <script id="main-template" type="text/x-handlebars-template">​
  <h1> Hello i'm the main </h1>

    {{> templates/partials/footer }}    

  </script>

    <script type="text/javascript" src="javascript/app.js"> </script> 
  </body>
</html>
下面是模块生成的文件,我没有将其包含在app.js中

module.exports = function (Handlebars) {
    function setup() {
        Handlebars.registerPartial("templates/partials/footer", require("./templates/partials/footer.hbs"));
    }

    return {
        setup: setup
    };
};
Grunfile.js:

module.exports = function(grunt) {

  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-register-hbs-partials');

  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    jshint: {
    //check error in js files
      files: ['Gruntfile.js', 'javascript/scripts/*.js'],
      options: {
        globals: {
          jQuery: true
        }
      }
    },
    concat: {
    //concat js files
      options: {
        separator: '\n/**********/\n'
      },
      dist: {
        src: ['javascript/libs/*.js', 'javascript/scripts/*.js'],
        dest: 'javascript/app.js'
      }
    },
    uglify: {
    //minify js files
      dist: {
        files: {
          'javascript/app.min.js': ['javascript/app.js']
        }
      }
    },
    register_partials: {
      //register hbs files as hbs partials
      default_options: {
          options: {
              extension: '.hbs'
          },
          files: {
              'templates/partials_default.js': [ 'templates/partials/footer.hbs', 'templates/partials/header.hbs']
          },
      }
    },
    watch: {
      files: ['javascript/scripts/*.js'],
      tasks: ['jshint', 'register_partials']
    }
  });

  grunt.registerTask('dev', ['jshint', 'register_partials', 'concat', 'watch']);
  grunt.registerTask('prod', ['jshint', 'register_partials', 'concat', 'uglify']);

};
footer.hbs 我是页脚

文件树:

- Gruntfile.js
- packages.json
- index.html
- templates
      |_ partials
             |_ footer.hbs

- javascript 
        |_app.js
              |_ handlebars.js
              |_ scripts/init.js

非常感谢您提供的任何帮助

您在运行grunt任务时遇到错误吗?你能分享Gruntfile目标配置吗?你说得对@JamesWing,我用我的Gruntfile.js更新了。我还尝试在测试项目基本为空的情况下再次使用此模块,但仍然出现此错误。因此,我想这是模块配置的关键。是在客户端还是服务器上运行Handlebar?我相信grunt register hbs partials库假设您在服务器上使用Handlebar,并生成一个node.js模块供服务器使用。mhm可以!我是在客户端做的,所以你得到的错误消息是来自服务器上的Grunt,还是来自客户端的Handlebar?如果您想在客户端上运行Handlebar,我相信您需要在
app.js
中做一些事情来告诉Handlebar加载您的分区。您在哪里引用
partials\u default.js
以使其加载?
- Gruntfile.js
- packages.json
- index.html
- templates
      |_ partials
             |_ footer.hbs

- javascript 
        |_app.js
              |_ handlebars.js
              |_ scripts/init.js