首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Marionette.js Require.js模板路径错误

Marionette.js Require.js模板路径错误
EN

Stack Overflow用户
提问于 2014-03-29 23:47:47
回答 2查看 476关注 0票数 0

我的tpl目录结构如下:

代码语言:javascript
复制
-src
    -assets
        -js
            -lib
                [files]
            -src
                -templates
                    -common
                        builder_regions.tpl

我的require.config是:

代码语言:javascript
复制
require.config({
    baseUrl:'src/assets/js',
    paths: {
        backbone:               'lib/backbone',
        jquery:                 'lib/jquery.min',
        'jquery-ui':            'lib/jquery-ui-1.10.4.custom.min',
        underscore:             'lib/underscore.min',
        modernizr:              'lib/modernizr.min',
        'magnific-popup':       'lib/magnific-popup.min',
        text:                   'src/assets/jslib/text',
        marionette:             'lib/backbone.marionette.min',
        tpl:                    'lib/underscore-tpl'
    },
    shim: {
        jquery: {
            exports:            '$'
        },
        underscore: {
            exports:            '_'
        },
        backbone: {
            deps:               [ 'jquery', 'underscore' ],
            exports:            'Backbone'
        },
        marionette: {
            deps:               [ 'jquery', 'underscore', 'backbone' ],
            exports:            'Marionette'
        },
        'jquery-ui': {
            deps:               [ 'jquery' ],
            exports:            '$ui'
        },
        'magnific-popup': {
            deps:               [ 'jquery' ],
            exports:            'magnificPopup'
        },
        tpl:                    [ 'text' ]
    }
});

我的需求模块被设置为:

代码语言:javascript
复制
define([ 'tpl!src/templates/common/builder_regions.tpl', function( Marionette, layoutTpl ) {
    console.log( 'did not throw' );
});

当我访问模块时,我会得到以下错误:

代码语言:javascript
复制
GET http://localhost:3000/src/assets/js/src/tpl.js 404 (Not Found)

为什么当我在tpl.js中提供路径时引用文件require.config?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-30 00:44:32

如果您的underscore-tpl.js这一个,那么您不需要为它配置shim,因为它本身调用define。如果您将shim配置用于不需要垫片的东西,那么RequireJS的行为可能会很奇怪。

另一件事与您在这里报告的问题无关,但可能会给您带来麻烦: jQuery至少从1.9版开始就不需要shim了。因此,如果您使用的版本是>= 1.9,您应该删除jqueryshim

票数 0
EN

Stack Overflow用户

发布于 2014-04-02 12:00:55

试试这个:

代码语言:javascript
复制
 define(['marionette', 'tpl!src/templates/common/builder_regions.tpl'], function( Marionette, layoutTpl ) {
        console.log( 'did not throw' );
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22738423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档