我目前在我的一个布局中有一个丑陋的单独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" %>
我运气不好——似乎谷歌文件根本不在那里(我检查了我的页面源代码,它已经加载)。我在这里做错了什么?
我不知道如何将其翻译成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
上
在谷歌CDN失败时,本地副本将被提取。
很抱歉翻到一篇旧帖子,但我不确定这个问题是否真的得到了回答。
我遇到了和你类似的问题,解决方案其实很简单:我没有包含CSS。你也可以通过谷歌的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亮度主题的;CDN上还有其他可用的主题(尽管不是全部)。我相信你可以通过谷歌快速搜索找到这些。