rails,fancybox 在 heroku 生产中不起作用

Posted

技术标签:

【中文标题】rails,fancybox 在 heroku 生产中不起作用【英文标题】:rails, fancybox not working in heroku production 【发布时间】:2015-01-23 00:22:53 【问题描述】:

我在我的开发环境中完美地运行了 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 中调试它的方向。提前致谢!

【问题讨论】:

您好,如果您可以分享您的 application.js 文件,那么最好回答您的问题。 没问题 - 已编辑原始帖子。同样,我让它在开发中运行良好,但 Heroku Production 无法正常工作。当我点击 Fancybox 链接时,它只是转到另一个页面,并显示图片。 这似乎是因为如果您将在生产模式下启动应用程序,您的应用程序将在网页上两次获得一些 js,因为您在 application.html 中定义了两次,另一次是 application.js让所有东西都独一无二,检查它们。 嗯,我应该删除哪些代码? 删除您在 application.html 中加载的所有 javascript 和 css ? 【参考方案1】:

玩了一会儿之后,看来我不得不将 application.js 文件中的整个脚本移动到视图中。不知道为什么会这样 - 但如果有人知道为什么这会影响生产,请让大家知道!谢谢!

【讨论】:

以上是关于rails,fancybox 在 heroku 生产中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Heroku / Rails:PG :: Undefined Table:错误“[tablename]”在heroku rails迁移上不存在

基于 gulp 的 fancybox 源码压缩

Rails:Heroku 的预编译?

每当使用 Rails 在 Heroku 中执行计划任务

Mailform 在本地工作,但不在生产环境中(Heroku、Rails)

如何使 animate.css 在 Rails 中工作?由于 animate-rails 不适用于 heroku