2

我目前在我的一个布局中有一组丑陋的单独 javascript 文件,我正在尝试使用 Google CDN 对其进行清理。

当前状态(我知道很糟糕):

...css...  
<%= yield :head %>

<%= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js" %>
<script type="text/javascript" src="http://cdn.jquerytools.org/1.2.5/all/jquery.tools.min.js"></script>
<%= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js" %>
<%= javascript_include_tag "ui/jquery.ui.core", "ui/jquery.effects.core",
   "ui/jquery.effects.highlight", "ui/jquery.ui.widget", "ui/jquery.ui.tabs",
   "ui/jquery.ui.progressbar" %>
<%= javascript_include_tag "jquery.ui.stars.min", "application", "rails" %>

我尝试将底部标记的第二个(带有长长的文件列表)替换为:

<%= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js" %>

我对此并不走运 - 似乎谷歌文件根本不存在(我检查了我的页面源并已加载)。我在这里做错了什么?

4

2 回答 2

4

我不知道如何将它翻译成 RAILS,但这个简单的 HTML 应该可以解决问题。

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
    if(typeof jQuery == 'undefined') {
        //<![CDATA[
        document.write("<script src='/includes/jquery-1.4.2.min.js' type='text/javascript'><\/script>");
        //]]>
    }
</script>

这将假定您的 jQuery 文件存储在/includes/jquery-1.4.2.min.js.
在 Google 的 CDN 失败时,将获取本地副本。

于 2011-06-27T23:57:16.853 回答
3

很抱歉挖掘了一个旧帖子,但我不确定这个问题是否真的得到了回答。

我遇到了和你类似的问题,解决方案实际上很简单:我没有包括 CSS。您也可以通过 Google 的 CDN 进行操作:

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-lightness/jquery-ui.css" media="screen" rel="stylesheet" type="text/css" />

或者

<%= stylesheet_link_tag 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-lightness/jquery-ui.css' %>

显然这是针对 ui-lightness 主题的;CDN 上还有其他可用的主题(尽管不是全部)。我相信你可以通过快速的谷歌搜索找到那些。

于 2011-11-11T16:38:53.523 回答