backboneforce.js:5 Uncaught SyntaxError: Unexpected token <

backboneforce.js:5 Uncaught SyntaxError: Unexpected token <

我正在使用 require.js 加载我的依赖项,但出现此错误:

backboneforce.js:5 Uncaught SyntaxError: Unexpected token <

我的配置文件:

    require.config({
    // Require is defined in /scripts, so just the remaining path (and no ext needed)
    'baseUrl': 'js/',
    'paths': {
        "jquery": "libs/jquery",
        "underscore": "libs/underscore",
        "backbone": "libs/backbone",
        "bootstrap": "libs/bootstrap",
        "text": "libs/text",
        "notify": "libs/notify",
        "backboneForce":"libs/backboneforce",
        "forceTK":"libs/forcetk/forcetk",
        "forceTKUI":"libs/forcetk/forcetkui"
    },
    'shim': {
        bootstrap: {
            deps: ['jquery'],
            exports: 'Bootstrap'
        },

        backbone: {
            'deps': ['jquery', 'underscore'],
            'exports': 'Backbone'
        },
        underscore: {
            'exports': '_'
        },
        forceTK:{
            deps:['jquery'],
            exports:'forcetk'
        }
    }

});

require([

    // Load our app module and pass it to our definition function
    'app'
], function (App) {
    // The "app" dependency is passed in as "App"
    App.initialize();
});

这是我的 app.js:

    define([
    'jquery',
    'underscore',
    'backbone',
    'bootstrap',
    'backboneForce',
    'forceTK',
    'forceTKUI',
    'notify',
    'router/navigationRouter'
], function ($, _, Backbone, bootstrap, bbforce, forcetk, forcetkui, notify, Router) {
    var initialize = function () {
        Router.initialize();
        console.log(bbforce);
    }

    return {
        initialize: initialize
    };
});

在我的浏览器网络选项卡中,所有依赖项都已加载,但我收到 forceTK、forceTKUI 和 backboneForce 的错误。

看起来 backboneforce 文件的路径是错误的,服务器正在 return 一个 404 HTML 页面。

下一行:

"backboneForce":"libs/backboneforce",

应该是

"backboneForce":"libs/backboneforce/backboneforce", // or backbone.force

require paths 是如何工作的?

paths 选项中的路径只是别名。如果要指向模块,则必须包含不带扩展名的文件名。

如果你的目录结构如下:

lib
├───backboneforce
│   └───backbone.force.js

路径应该是lib/backboneforce/backbone.force.

< 是从哪里来的?

当您使用不存在的文件路径发出请求时,服务器通常会 return 某种默认的 404 错误消息,或者它会重定向到默认页面(如主页) .

这里是 Stack Overflow returns:

< 来自响应第一行的 <!DOCTYPE html>,浏览器试图将其解释为 JavaScript。