【问题标题】:Algolia Instantsearch for rails no resultsAlgolia Instantsearch for rails 没有结果
【发布时间】:2018-01-17 17:14:21
【问题描述】:

您好,我是 Ror 和 Js 的新手, 我想在我的应用程序上安装 algolia Instantsearch,我的产品出现在 algolia 索引上,但我无法成功在我的 html 页面(产品索引)上显示我的 Instantsearch 和结果 如果有人可以帮助我,那就太好了:-) 提前考虑

这是我的代码:

我包含的布局:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3/dist/instantsearch.min.css">

product.rb(型号):

include AlgoliaSearch
algoliasearch if: :active? do
  attribute :name, :brand, :category, :color, :size, :price
end

search.html.erb:

    <div>
       <input id="search-input" placeholder="Search for products">
       <!-- We use a specific placeholder in the input to guides users in their search. -->
    </div>
  </header>
  <main>
      <div id="hits"></div>
      <div id="pagination"></div>
  </main>

  <script src="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3/dist/instantsearch.min.js"></script>
  <script src="app.js"></script>


  <script type="text/html" id="hit-template">
  <div class="hit">
    <div class="hit-image">
      <img src="{{image}}" alt="{{name}}">
    </div>
    <div class="hit-content">
      <h3 class="hit-price">${{price}}</h3>
      <h2 class="hit-name">{{{_highlightResult.name.value}}}</h2>
      <p class="hit-description">{{{_highlightResult.description.value}}}</p>
    </div>
  </div>
</script>

app.js:

var search = instantsearch({
  // Replace with your own values
  appId: "012967GRTQ",
  apiKey: "a3f100606d982f64d7c25410c672f5f5", // search only API key, no ADMIN key
  indexName: 'Product',
  urlSync: true,
  searchParameters: {
    hitsPerPage: 10
  }
});

search.addWidget(
  instantsearch.widgets.searchBox({
    container: '#search-input'
  })
);

search.addWidget(
  instantsearch.widgets.hits({
    container: '#hits',
    templates: {
      item: document.getElementById('hit-template').innerHTML,
      empty: "We didn't find any results for the search <em>\"{{query}}\"</em>"
    }
  })
);

search.addWidget(
  instantsearch.widgets.pagination({
    container: '#pagination'
  })
);

search.start();

config/initializers/algoliasearch.rb

require 'rubygems'
require 'algoliasearch'

Algolia.init application_id: "XXXXXX",
             api_key:        "xxxxxxxxxxxx"
index = Algolia::Index.new("Product")

我从以下位置导入了 css: .....github.com/algolia/examples/blob/master/instant-search/instantsearch.js/assets/style.css.....

【问题讨论】:

  • 嘿!您是否在浏览器控制台中看到任何错误,并且您确定 app.js 实际已加载到页面中?
  • 嗨 Haroen,我遇到以下错误:加载资源失败:服务器响应状态为 404(未找到)
  • 哪个资源?确保 app.js 的链接正确
  • 我在下一个答案中添加了它..sorry

标签: javascript css ruby-on-rails algolia


【解决方案1】:

以下资源:

GET http://localhost:3000/app.js 404 (Not Found)
GET http://localhost:3000/js/main.js 404 (Not Found)

这是我的布局:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <title>XXXXXXX</title>
  <%= csrf_meta_tags %>
  <%= action_cable_meta_tag %>
  <%= javascript_include_tag "https://js.stripe.com/v2/" %>
  <%= stylesheet_link_tag 'application', media: 'all' %>

<link rel="stylesheet" type="text/css" href="css/jTinder.css">
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3/dist/instantsearch.min.css">

  <%= favicon_link_tag 'favicon.ico'%>
</head>

<body>
  <%= render 'shared/navbar' %>
  <%= render 'shared/message' %>
  <%= yield %>
  <%= javascript_include_tag "https://maps.google.com/maps/api/js?libraries=places&key=#{ENV['GOOGLE_API_BROWSER_KEY']}" %>
  <%= javascript_include_tag "https://cdn.rawgit.com/printercu/google-maps-utility-library-v3-read-only/master/markerclusterer/src/markerclusterer_compiled.js" %>
  <%= javascript_include_tag "https://cdn.rawgit.com/printercu/google-maps-utility-library-v3-read-only/master/infobox/src/infobox_packed.js" %>
  <%= javascript_include_tag 'application' %>
  <script type="text/javascript" src="autocomplete.js"></script>


    <script type="text/javascript" src="js/jquery.min.js"></script>
    <!-- transform2d lib -->
    <script type="text/javascript" src="js/jquery.transform2d.js"></script>
    <!-- jTinder lib -->
    <script type="text/javascript" src="js/jquery.jTinder.js"></script>
    <!-- jTinder initialization script -->
    <script type="text/javascript" src="js/main.js"></script>



  <%= yield(:after_js) %>
  <%= render 'pages/footer' %>

</body>
</html>

【讨论】:

    猜你喜欢
    • 2019-01-06
    • 2017-11-26
    • 1970-01-01
    • 2021-09-02
    • 2020-11-15
    • 1970-01-01
    • 2021-09-05
    • 2021-10-17
    • 2022-10-06
    相关资源
    最近更新 更多