首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取http://localhost:3000/projects/assets/jquery.masonry.js 404 (未找到)

获取http://localhost:3000/projects/assets/jquery.masonry.js 404 (未找到)
EN

Stack Overflow用户
提问于 2012-12-27 17:54:13
回答 1查看 20.4K关注 0票数 1

我试图在我的rails应用程序中添加一个javascript插件砌体,并想知道为什么它只适用于我的欢迎控制器(localhost:3000/),而不适用于其他控制器,如localhost:3000/projects/1,尽管我使用的代码完全相同。

我知道这个错误:

获取localhost:3000/projects/assets/jquery.masonry.js 404 (未找到)

未明的TypeError:对象对象没有“砖石”方法 (匿名函数) e.resolveWith jquery.min.js e.extend.ready jquery.min.js c.addEventListener.z

我是因为错误的路径localhost/project/assets而不是localhost/assets而导致错误的,但是我无法找到如何修复这个错误。欢迎任何帮助!

这是视图中的代码:

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

这是我的application.rb:

代码语言:javascript
运行
复制
<!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>

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-27 18:00:55

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

代码语言:javascript
运行
复制
<script src = "/assets/jquery.masonry.js"></script>
<script src = "/assets/jquery.masonry.min.js"></script>

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

此外,您应该只连接一个版本的插件-最小化与否。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14058978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档