Ember模板和Google AdSense
在Ember(把手)模板中添加Google AdSense横幅广告的适当方式是什么? 假设我有一个如下所示的视图模板:
<script type="text/x-handlebars" data-template-name="myPageWithBanner">
<div id="mainContent">
Lorem ipsum main content
</div>
<div id="banner">
//Normally I would insert a script tag here, but that is not possible
</div>
</script>
我是否需要使用预编译模板从代码执行此操作,还是有一种我不知道的方法?
我没有Google AdSense帐户,所以我无法对此进行测试。 但是这里有几个主要的问题:
<script>
标记。 但为了简单起见,我会假设您可以直接与谷歌讨论TOS问题,我将尽力解决技术问题。 首先,基于这个StackOverflow答案,下面是一个可能的解决方案,它允许您逐字提供Google的脚本:
<script type="text/x-handlebars">
<h1>Ember AdSense</h1>
{{outlet}}
<div id="ads"></div>
</script>
<script type="text/x-handlebars" data-template-name="index">
<p>Hello, world!</p>
</script>
<div id="ads-load" style="display: none">
<!--
Apparently this needs to appear verbatim, exactly as Google gave it to
you, or it's a TOS violation.
-->
<script type="text/javascript"><!--
google_ad_client = "ca-pub-XXXXXXXXXX";
/* Test Ad */
google_ad_slot = "XXXXXX";
google_ad_width = 250;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
然后,当我们的主模板加载时,我们使用jQuery将广告移动到我们的应用程序模板中:
window.App = Ember.Application.create();
// Explicitly declare the view class for our application view.
App.ApplicationView = Ember.View.extend({
// Called once the view is rendered.
didInsertElement: function () {
$('#ads-load').appendTo("#ads").css("display", "block");
}
});
至于允许Google抓取工具查看您的内容,Google对AJAX应用程序提供了官方建议,但我不知道它是否适用于AdSense抓取工具。 或者,如果您使用pushState
来更新显示的URL,那么您需要确保每个URL都可以在您的服务器被爬虫请求时呈现。 (Discourse论坛软件正是这样做的。)
请让我知道,如果它让你更接近。
链接地址: http://www.djcxy.com/p/12759.html