0

我在本地和生产中也有同样的问题,但至少在本地,出现了 JS 粒子。

这是代码的git:

    <div class="jumbo" id="particles-js"></div>
        <div id="particles-js"></div>
        <script src="particles.js"></script>
...

然后我在本地和生产中得到同样的错误:

Started GET "/listings/particles.js" for xxx at 2019-03-21 21:23:12 -0400
Processing by ListingsController#show as JS
  Parameters: {"id"=>"particles"}
...
ActiveRecord::RecordNotFound (can't find record with friendly id: "particles"):

问题不在于 Friednly ID,因为无论有没有,都会发生同样的情况。

现在无论如何都会出现这个错误,但至少在局部出现了粒子显示。

这是怎么回事?

4

1 回答 1

0

看起来正在发生的事情是你有一个名为的资源Listing,它的路线看起来像这样/listings/:id

当该页面被呈现时,html 包含一个 script 标签请求particles.js,它是一个相对路径,因此浏览器正在向/listings/particles.js. Rails 将此解释为对Listing资源的请求,并寻找它无法找到Listing的一个idparticles

要解决此问题,您有几个选择:

  1. particles.js您的application.js文件中添加以下行。这将包括particles.js您网站每个页面上的 javascript(包括application.js
//= require particles
  1. 在单个 html/erb 页面上添加javascript_include_tag并包含。particles.js这将仅包括particles.js特定视图文件,但需要用户下载单独的 Javascript 文件。要告诉 Rails Asset Pipeline 包含此文件,您还需要修改config/initializers/assets.rb以确保它是预编译的 在您的视图中:
<%= javascript_include_tag "particles" %>

config/initializers/assets.rb

Rails.application.config.assets.precompile += %w( particles.js )

注意:如果您遵循上述任一步骤,Rails 资产管道应该在部署到生产环境时为您缩小文件(因此您不需要使用particles.min.js)。

于 2019-03-22T01:35:32.993 回答