我已将SSR添加到create-react-app中。它工作正常,但是我对CRA内联的较小图像有问题,但是renderToString仍然认为是磁盘上的文件,因此在运行SSR版本时它将是404。
我猜我设置SSR服务器的配置是错误的,但是我不确定如何添加url-loader,如果真的是我应该使用的url-loader,我不确定。
我使用此配置引导服务器。有人可以帮我,以便this和renderToString也可以内嵌小图像吗?
const md5File = require('md5-file');
const path = require('path');
const ignoreStyles = require('ignore-styles');
const register = ignoreStyles.default;
const extensions = ['.gif', '.jpeg', '.jpg', '.png', '.svg'];
register(ignoreStyles.DEFAULT_EXTENSIONS, (mod, filename) => {
if (!extensions.find(f => filename.endsWith(f))) {
// If we find a style
return ignoreStyles.noOp();
} else {
// If we find an image
const hash = md5File.sync(filename).slice(0, 8);
const bn = path.basename(filename).replace(/(\.\w{3})$/, `.${hash}$1`);
mod.exports = `/static/media/${bn}`;
}
});
require('@babel/polyfill');
require('@babel/register')({
ignore: [/\/(build|node_modules)\//],
presets: ['@babel/preset-env', '@babel/preset-react'],
plugins: [
'@babel/plugin-syntax-dynamic-import',
'dynamic-import-node',
'react-loadable/babel'
]
});
require('./server');
我也可以禁用客户端应用程序中的内联功能,但是我不想弹出,所以我也不知道如何解决这个问题。