无法让Lunr.js在Middleman内置的Amazon S3站点上工作。在本地服务器上正常工作

时间:2017-01-27 19:41:36

标签: javascript jquery amazon-s3 middleman lunrjs

问题:Lunr.js索引并加载静态网站内容JSON文件,但在部署时不起作用。它在LiveReload的开发中工作,但在部署时不起作用。

我在AWS上设置了CORS选项以允许所有请求,但它没有任何效果。

框架: Middleman 4.0

宝石:Middleman-Search

JS :Lunr.js 0.7.0(虽然问题与0.7.2重复)

主机:Amazon S3静态网站托管

当页面加载时,我立即在控制台中收到此错误,因为下载和缓存搜索索引的AJAX请求是一个自执行的函数表达式。

这是我的堆栈跟踪:

Uncaught TypeError: Cannot read property 'version' of undefined
    at Function.t.Index.load (all.js:95)
    at Object.success (all.js:95)
    at u (all.js:3)
    at Object.fireWith [as resolveWith] (all.js:3)
    at i (all.js:4)
    at XMLHttpRequest.<anonymous> (all.js:4)

下面是兔子洞。知道如何解决这个问题吗?

all.js:95 Uncaught TypeError:无法读取属性&#39;版本&#39;未定义的

在Function.t.Index.load(all.js:95)

t.Index.prototype.off = function(t, e) {
  return this.eventEmitter.removeListener(t, e)
}

在Object.success(all.js:95)

让我走到Lunrjs自动执行函数表达的末尾。

at u(all.js:3)

dt.Callbacks = function(t) {
  t = "string" == typeof t ? s(t) : dt.extend({}, t);
  var e, n, i, o, r = [], a = [], l = -1, u = function() {
      for (o = t.once,
      i = e = !0; a.length; l = -1)
          for (n = a.shift(); ++l < r.length; )
              r[l].apply(n[0], n[1]) === !1 && t.stopOnFalse && (l = r.length,
              n = !1);
      t.memory || (n = !1),
   `   e = !1,
      o && (r = n ? [] : "")

在Object.fireWith [as resolveWith](all.js:3)

     fireWith: function(t, n) {
                     return o || (n = n || [],
                     n = [t, n.slice ? n.slice() : n],
                     a.push(n),
                     e || u()),
                   this
                 },

at i(all.js:4)

u ? m.resolveWith(g, [f, T, S]) : m.rejectWith(g, [S, T, p]),
XMLHttpRequest上的

。 (all.js:4)

"abort" === t ? a.abort() : "error" === t ? "number" != typeof a.status ? r(0, "error") : r(a.status, a.statusText) : r(We[a.status] || a.status, a.statusText, "text" !== (a.responseType || "text") || "string" != typeof a.responseText ? {

我不知道我不明白什么,在哪里探究,以确定我是否引起了这个问题。它可能是Lunrjs,Amazon S3,CORS或Middleman问题。

0 个答案:

没有答案