@@ -2,32 +2,7 @@ import React from 'react'
2
2
import htmlescape from 'htmlescape'
3
3
import pkg from '../../package.json'
4
4
5
- export default ( { head, css, html, data, dev, staticMarkup } ) => {
6
- let script
7
- if ( ! staticMarkup ) {
8
- if ( dev ) {
9
- script = < script type = 'text/javascript' src = '/_next/next-dev.bundle.js' />
10
- } else {
11
- script = < script dangerouslySetInnerHTML = { { __html : `
12
- (function () {
13
- load('https://cdn.zeit.co/next.js/${ pkg . version } /next.min.js', function (err) {
14
- if (err) load('/_next/next.bundle.js')
15
- })
16
-
17
- function load (src, fn) {
18
- fn = fn || function () {}
19
- var script = document.createElement('script')
20
- script.src = src
21
- script.onload = function () { fn(null) }
22
- script.onerror = fn
23
- script.crossorigin = 'anonymous'
24
- document.head.appendChild(script)
25
- }
8000
div>
26
- })()
27
- ` } } />
28
- }
29
- }
30
-
5
+ export default ( { head, css, html, data, dev, staticMarkup, cdn } ) => {
31
6
return < html >
32
7
< head >
33
8
{ ( head || [ ] ) . map ( ( h , i ) => React . cloneElement ( h , { key : i } ) ) }
@@ -36,7 +11,35 @@ export default ({ head, css, html, data, dev, staticMarkup }) => {
36
11
< body >
37
12
< div id = '__next' dangerouslySetInnerHTML = { { __html : html } } />
38
13
{ staticMarkup ? null : < script dangerouslySetInnerHTML = { { __html : '__NEXT_DATA__ = ' + htmlescape ( data ) } } /> }
39
- { script }
14
+ { staticMarkup ? null : createClientScript ( { dev , cdn } ) }
40
15
</ body >
41
16
</ html >
42
17
}
18
+
19
+ function createClientScript ( { dev, cdn } ) {
20
+ if ( dev ) {
21
+ return < script type = 'text/javascript' src = '/_next/next-dev.bundle.js' />
22
+ }
23
+
24
+ if ( ! cdn ) {
25
+ return < script type = 'text/javascript' src = '/_next/next.bundle.js' />
26
+ }
27
+
28
+ return < script dangerouslySetInnerHTML = { { __html : `
29
+ (function () {
30
+ load('https://cdn.zeit.co/next.js/${ pkg . version } /next.min.js', function (err) {
31
+ if (err) load('/_next/next.bundle.js')
32
+ })
33
+
34
+ function load (src, fn) {
35
+ fn = fn || function () {}
36
+ var script = document.createElement('script')
37
+ script.src = src
38
+ script.onload = function () { fn(null) }
39
+ script.onerror = fn
40
+ script.crossorigin = 'anonymous'
41
+ document.head.appendChild(script)
42
+ }
43
+ })()
44
+ ` } } />
45
+ }
0 commit comments