【问题标题】:Serving script files from karma server从业力服务器提供脚本文件
【发布时间】:2016-01-26 21:01:20
【问题描述】:

我正在通过 karma runner 在 phantomjs 上运行测试,我的一些代码进行了 ajax 调用,这些调用都失败并出现 404。

我一直在纠结文件的放置位置(请参阅:Including libraries fails - what is document root?),但我发现了一个帖子 (Loading external file from Karma/Jasmine test),表明我可以配置 karma Web 服务器以提供其他文件。

特别是 ajax 调用正在尝试从 node_modules 目录加载文件,所以我已经像这样配置了 karma.config.js

files: [{
    pattern: 'node_modules/*',
    served: true,
    included: false
}]

而我的 ajax 调用通常看起来像这样(我在目录中放置了一个 blah.js 进行测试):

$.ajax({url: 'node_modules/blah.js', ...});

但它仍然不起作用。我错过了什么?

【问题讨论】:

    标签: javascript ajax phantomjs karma-runner


    【解决方案1】:

    嗯...这很奇怪,但根据karma docs

    默认情况下,所有资产都在http://localhost:[PORT]/base/提供服务

    所以这行得通:1)在karma.conf.js

    files: [{
      pattern: 'node_modules/**',
      served: true,
      included: false
    }]
    

    和 2) 调用:

    $.ajax({url: '/base/node_modules/blah.js', ...});
    

    ...这就留下了如何配置 base 的问题,但目前,这可行。

    【讨论】:

      猜你喜欢
      • 2018-07-05
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 2017-11-05
      • 2012-06-15
      • 2013-09-27
      • 2011-08-09
      • 1970-01-01
      相关资源
      最近更新 更多