angular-docs-cn/aio/src/index.html
Pete Bacon Darwin 88045a5050 feat(aio): update metatags to control search engine crawling (#21665)
The `<meta name="robots" content="noindex">` tag is used
to indicate to search engine crawlers that they should not index
the current page. This is set dynamically by the the document
viewer component to ensure that 404 and other erroring pages
are not added to the search index.

This relies upon the idea that the crawling bot will run the JS
and wait to see if this meta tag has been added or not.

Since we believe that the `googebot` will do this, we also
pre-emptively add a hard-coded noindex tag specifically for
this bot, so that if anything else fails in bootstrapping the app,
the failed page will not be added to the index.

Closes #21317

PR Close #21665
2018-01-19 20:30:02 -08:00

101 lines
4.1 KiB
HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Angular Docs</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="icon" type="image/x-icon" href="assets/images/favicons/favicon.ico">
<link rel="icon" type="image/png" href="assets/images/favicons/favicon-32x32.png"
sizes="32x32">
<link rel="icon" type="image/png" href="assets/images/favicons/favicon-194x194.png"
sizes="194x194">
<link rel="icon" type="image/png" href="assets/images/favicons/favicon-96x96.png"
sizes="96x96">
<link rel="icon" type="image/png" href="assets/images/favicons/favicon-16x16.png"
sizes="16x16">
<link rel="apple-touch-icon" sizes="144x144" href="assets/images/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/images/favicons/apple-touch-icon-144x144.png">
<!-- NOTE: These need to be kept in sync with `ngsw-manifest.json`. -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Droid+Sans+Mono" rel="stylesheet">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<!-- -->
<link rel="manifest" href="pwa-manifest.json">
<meta name="theme-color" content="#1976d2">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="translucent">
<!--
Initially tell the Google crawler not to index this page.
If the page loads correctly will remove this tag (in the DocViewer).
Subsequent navigations will update the tag dynamically (i.e. soft 404).
Don't do the same for `robots` in general here, since they might not be able to handle the tag changing dynamically.
-->
<meta name="googlebot" content="noindex">
<!-- Google Analytics -->
<script>
// Note this is a customised version of the GA tracking snippet
// See the comments below for more info
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;
~i.name.indexOf('NG_DEFER_BOOTSTRAP')|| // only load library if not running e2e tests
m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
</script>
<!-- End Google Analytics -->
<script>
if (window.document.documentMode) {
// polyfill IE11 in a blocking way
var s = document.createElement('script');
s.src = 'generated/ie-polyfills.min.js';
document.head.appendChild(s);
} else if (!Object.assign) {
// polyfill other non-evergreen browsers in a blocking way
var polyfillUrl = "https://cdn.polyfill.io/v2/polyfill.min.js?features=default,Array.prototype.find&flags=gated&unknown=polyfill";
// send a blocking XHR to fetch the polyfill
// then append it to the document so that its eval-ed synchronously
// this is required because the method used for IE is not reliable with other non-evergreen browsers
var xhr = new XMLHttpRequest();
xhr.addEventListener("load", function() {
var s = document.createElement('script');
s.type = 'text/javascript';
var code = this.responseText;
s.appendChild(document.createTextNode(code));
document.head.appendChild(s);
});
xhr.open("GET", polyfillUrl, false);
xhr.send();
}
</script>
</head>
<body>
<aio-shell></aio-shell>
<noscript>
<div class="background-sky hero"></div>
<section id="intro">
<div class="hero-logo">
<img src="assets/images/logos/angular/angular.svg" width="250" height="250">
</div>
<div class="homepage-container">
<div class="hero-headline">One framework.<br>Mobile &amp; desktop.</div>
</div>
</section>
<h2 style="color: red; text-align: center; margin-top: -50px;">
<b><i>This website requires JavaScript.</i></b>
</h2>
</noscript>
</body>
</html>