GET http://localhost:3000/projects/assets/jquery.masonry.js

GET http://localhost:3000/projects/assets/jquery.masonry.js 404 (Not Found)

本文关键字:jquery masonry js assets 3000 http localhost GET projects      更新时间:2023-09-26

我试图添加一个javascript-plugin砌体到我的rails应用程序,并想知道为什么它只适用于我的欢迎控制器(localhost:3000/),但不适用其他控制器作为localhost:3000/projects/1,虽然我使用完全相同的代码。

我得到这个错误:

GET localhost:3000/projects/assets/jquery. masony .js 404 (Not Found)

Uncaught TypeError: Object [Object Object] has no method '砌体'

(匿名函数)

e。resolveWith jquery.min.js

e.extend。准备好jquery.min.js

c.addEventListener.z

我假设我得到错误,因为错误的路径localhost/projects/assets而不是localhost/assets,但我找不到如何解决这个问题。欢迎任何帮助!

这是视图中的代码:

<% content_for(:scripts) do %>
<script type="text/javascript">
    
  $(function(){
    $('.squarescontainer').masonry({
      // options
      itemSelector : '.item',
      isAnimated: true
    });
  });
    
</script>
<% end %>

这是application。rb:

<!DOCTYPE html>
<html>
  <head>
    <title>ifub</title>
    <%= stylesheet_link_tag    "application", :media => "all" %>
    <%= javascript_include_tag "application" %>
    <%= csrf_meta_tags %>
    <link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans+Narrow&v1">
    <link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=Oswald">
  
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
  
    <script src = "assets/jquery.masonry.js"></script>
    <script src = "assets/jquery.masonry.min.js"></script>
    <%= yield(:head) %>
    
  </head>
  
  <body>
    <%= render 'layouts/logo' %>
    
    <p class="notice"><%= notice %></p>
      <p class="alert"><%= alert %></p>
  
    <div class="frame">
      <div class="container">
        <%= yield %>
        <%= yield :scripts %>
      </div>
    </div>
  
  </body>
</html>

谢谢你的帮助!

你正在使用URL相对于当前路径,所以如果你的页面是localhost:3000/project/page.html, JS URL将是localhost:3000/project/assets/...。试着这样修改你的代码:

<script src = "/assets/jquery.masonry.js"></script>
<script src = "/assets/jquery.masonry.min.js"></script>

见资产前加的"/"。在这种情况下,浏览器将加载脚本相对站点根。在这种情况下,即使你的当前页面是localhost:3000/project/page.html, JS URL仍然将是localhost:3000/assets/...

此外,你应该只连接一个版本的插件-最小化或不