Skip to content

Commit f3d5266

Browse files
authored
Merge pull request #1685 from heinthanth/cra-server-patches
add missing renderApp in template
2 parents 97cd5c3 + 96b0598 commit f3d5266

File tree

1 file changed

+28
-25
lines changed
  • packages/create-razzle-app/templates/default/src

1 file changed

+28
-25
lines changed

packages/create-razzle-app/templates/default/src/server.js

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,44 +13,47 @@ const cssLinksFromAssets = (assets, entrypoint) => {
1313
).join('') : '' : '';
1414
};
1515

16-
const jsScriptTagsFromAssets = (assets, entrypoint, extra = '') => {
16+
const jsScriptTagsFromAssets = (assets, entrypoint, ...extra) => {
1717
return assets[entrypoint] ? assets[entrypoint].js ?
1818
assets[entrypoint].js.map(asset=>
19-
`<script src="${asset}"${extra}></script>`
19+
`<script src="${asset}" ${extra.join(" ")}></script>`
2020
).join('') : '' : '';
2121
};
2222

23+
export const renderApp = (req, res) => {
24+
const context = {};
25+
const markup = renderToString(
26+
<StaticRouter context={context} location={req.url}>
27+
<App />
28+
</StaticRouter>
29+
);
30+
const html = `<!doctype html>
31+
<html lang="">
32+
<head>
33+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
34+
<meta charset="utf-8" />
35+
<title>Welcome to Razzle</title>
36+
<meta name="viewport" content="width=device-width, initial-scale=1">
37+
${cssLinksFromAssets(assets, 'client')}
38+
</head>
39+
<body>
40+
<div id="root">${markup}</div>
41+
${jsScriptTagsFromAssets(assets, 'client', 'defer', 'crossorigin')}
42+
</body>
43+
</html>`
44+
return {context, html};
45+
}
46+
2347
const server = express();
2448
server
2549
.disable('x-powered-by')
2650
.use(express.static(process.env.RAZZLE_PUBLIC_DIR))
2751
.get('/*', (req, res) => {
28-
const context = {};
29-
const markup = renderToString(
30-
<StaticRouter context={context} location={req.url}>
31-
<App />
32-
</StaticRouter>
33-
);
34-
52+
const {context, html} = renderApp(req, res);
3553
if (context.url) {
3654
res.redirect(context.url);
3755
} else {
38-
res.status(200).send(
39-
`<!doctype html>
40-
<html lang="">
41-
<head>
42-
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
43-
<meta charset="utf-8" />
44-
<title>Welcome to Razzle</title>
45-
<meta name="viewport" content="width=device-width, initial-scale=1">
46-
${cssLinksFromAssets(assets, 'client')}
47-
</head>
48-
<body>
49-
<div id="root">${markup}</div>
50-
${jsScriptTagsFromAssets(assets, 'client', ' defer crossorigin')}
51-
</body>
52-
</html>`
53-
);
56+
res.status(200).send(html);
5457
}
5558
});
5659

0 commit comments

Comments
 (0)