【发布时间】:2012-08-31 00:55:12
【问题描述】:
我在我的 Rails 3.2 应用程序的供应商资产目录中安装了 FancyBox(例如 jquery.fancybox.pack.js、jquery.fancybox.css 以及供应商资产文件夹中它们各自目录中的相关图像,没有任何额外内容)。
javascript 和 CSS 资产加载到资产管道的 application.js 和 application.css 文件中。而且,我已经测试并确认它们确实可以正常工作,因为单击时会正确弹出图像。
问题是无法加载 YouTube 视频模式。相反,它只显示每秒左右闪烁的加载 GIF。
这是 jQuery (CoffeeScript) 代码:
$(document).ready ->
$(".videopopup").fancybox
maxWidth: 800
maxHeight: 600
fitToView: false
width: '70%'
height: '70%'
autoSize: false
closeClick: false
openEffect: 'none'
closeEffect: 'none'
return
这是页面内的链接代码:
<%= link_to image_tag('thumbnail.png', alt: 'Thumbnail', class: "responsive"), 'http://www.youtube.com/embed/myvideocode?fs=1&autoplay=1', class: 'videopopup', title: 'My Video' %>
我在 localhost 上运行它,这可能是问题所在。在 Chrome 中查看控制台,发现如下错误:
XMLHttpRequest 无法加载 http://www.youtube.com/embed/myvideocode?fs=1&autoplay=1。 Access-Control-Allow-Origin 不允许来源
http://localhost:3000
有谁知道这个错误是什么意思?我已经看到了一些关于这个错误的 SO 问题,但是没有关于如何在 Rails 中克服它的具体解决方案。或者,我错过了什么?
【问题讨论】:
-
为什么不自己在服务器环境中测试一个答案? ;) ...我敢打赌,本地测试与这个问题有关。
-
我希望有一个更简单的答案 :) 我无法在不了解 100% 的情况下将应用程序部署到生产环境,而且设置一个全新的服务器/应用程序只是为了排除故障有点麻烦问题。我希望有人有类似的经历并且能够以一种或另一种方式告诉我。
-
然后我会测试它,看看我是否可以重现这个问题....但是需要一点时间(现在卡住了)
-
顺便说一句,由于您的目标是 youtube
embed模式,您是否尝试像class: 'videopopup fancybox.iframe'一样添加fancybox.iframe类?...然后它可以在本地或类似的服务器中运行。 -
这是个好主意 - 我现在就试一试!
标签: jquery ruby-on-rails fancybox