2014-11-25 76 views
1

我有fancybox在我的开发环境中工作完美,但是当我推到Heroku制作时,它不起作用。我尝试着看着这里的所有帮助(预编译资产等),尝试了一切,但似乎无法让它工作!希望有人能帮助我在这里...rails,fancybox不能在heroku制作中工作

这里是我的application.html.erb:

<html> 
<head> 
    <%= analytics_init if Rails.env.production? %> 

    <%= favicon_link_tag "/favicon.ico" %> 
    <link href='http://fonts.googleapis.com/css?family=Source+Code+Pro:200,300,400,500,600,700,900' rel='stylesheet' type='text/css'> 

    <!-- Add jQuery library --> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> 

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
    <%= csrf_meta_tags %> 

    <!-- WORLD MAP --> 
    <link href="/assets/jqvmap.css" media="screen" rel="stylesheet" type="text/css" /> 
    <script src="/assets/jquery.vmap.js" type="text/javascript"></script> 
    <script src="/assets/jquery.vmap.world.js" type="text/javascript"></script> 

    <!-- Add fancyBox --> 
    <link rel="stylesheet" href="/fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" /> 
    <script type="text/javascript" src="/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script> 

</head> 
<body> 
    <%= render "layouts/header" unless @disable_header %> 
    <%=yield %> 
</body> 
</html> 

我的application.js:

//= require rails_autocomplete 
//= require jquery 
//= require jquery_ujs 
//= require jquery.fancybox 
//= require jquery.turbolinks 
//= require turbolinks 
//= require bxslider 
//= require fancybox 
//= require_tree . 

var fancybox = function(){ 
    $('.fancybox').fancybox({ 
     parent: "body", 
     helpers: { 
      overlay: { 
       locked: false 
      } 
     } 
    });   
}; 
$(document).on("page:load ready", fancybox); 

如果有人认为我做的不是,那将会很棒 - 或者至少可以指出我如何在Heroku Production中进行调试。提前致谢!

+0

嗨,如果你可以分享你的application.js文件,那么它会更好地回答你的问题。 – 2014-11-25 06:01:12

+0

没问题 - 编辑原始帖子。再次,我在开发过程中工作得很好,但Heroku Production不起作用。当我点击Fancybox链接时,它会转到另一个页面,并显示图片。 – gitastic 2014-11-25 07:15:47

+0

看起来是因为如果您将在生产模式下启动应用程序,您的应用程序将在网页上获得一些js两次,因为您在application.html中定义了两次,另一个是application.js,请使所有的唯一性检查它们。 – 2014-11-25 07:37:12

回答

0

玩了一下之后,看起来像我必须将我的application.js文件中的整个脚本移动到视图中。不知道为什么这会起作用 - 但如果有人知道这会影响生产,请让每个人都知道!谢谢!