From 657af5906ed50acc9bacea487ac22b6c9c961571 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Sun, 30 Oct 2022 01:51:42 +0300 Subject: Read static root from the config --- vnext/server/bootstrap.js | 11 +++++++++++ vnext/server/index.js | 5 ++++- vnext/server/middleware/renderer.js | 5 ++++- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 vnext/server/bootstrap.js (limited to 'vnext/server') diff --git a/vnext/server/bootstrap.js b/vnext/server/bootstrap.js new file mode 100644 index 00000000..0f920886 --- /dev/null +++ b/vnext/server/bootstrap.js @@ -0,0 +1,11 @@ +require('ignore-styles'); +require('url-loader'); +require('file-loader'); +require('@babel/register')({ + ignore: [/(node_modules)/], + presets: [ + '@babel/preset-env', + ['@babel/preset-react', { 'runtime': 'automatic' }] + ] +}); +require('./index'); diff --git a/vnext/server/index.js b/vnext/server/index.js index f9a432b9..729f05d6 100644 --- a/vnext/server/index.js +++ b/vnext/server/index.js @@ -1,4 +1,5 @@ import express from 'express'; +import config from 'config'; // we'll talk about this in a minute: import serverRenderer from './middleware/renderer'; @@ -18,9 +19,11 @@ router.get('/api/oembed', oembed); router.get('/api/urlexpand', urlExpand); router.use('^/$', serverRenderer); +const STATIC_ROOT = config.get('service.static_root') || path.resolve(__dirname, 'dist'); + // other static resources should just be served as they are router.use(express.static( - path.resolve(__dirname), + STATIC_ROOT, { maxAge: '30d' }, )); diff --git a/vnext/server/middleware/renderer.js b/vnext/server/middleware/renderer.js index 4223d7f2..a4b745f8 100644 --- a/vnext/server/middleware/renderer.js +++ b/vnext/server/middleware/renderer.js @@ -1,5 +1,6 @@ import * as ReactDOMServer from 'react-dom/server'; import cookie from 'cookie'; +import config from 'config'; // import our main App component import App from '../../src/App'; @@ -20,10 +21,12 @@ function toBinary(string) { return Buffer.from(String.fromCharCode(...new Uint8Array(codeUnits.buffer))).toString('base64'); } +const STATIC_ROOT = config.get('service.static_root') || path.resolve(__dirname, 'dist'); + const serverRenderer = async (req, res) => { // point to the html file created by CRA's build tool - const filePath = path.resolve('index.html'); + const filePath = path.resolve(STATIC_ROOT, 'index.html'); // links const cookies = cookie.parse(req.headers.cookie || ''); -- cgit v1.2.3