2
私は、サーバ側のNodejs + Expressjの角度ユニバーサルで角度のあるアプリケーションをレンダリングしようとしています。 ng build --prod --app 1
でアプリケーションをビルドし、webpackでコンパイルしてnode server.js
でアプリを実行した後。私は、ブラウザでアプリを開くとエラーCurrent document does not have a doctype. This may cause some Angular Material components not to behave as expected.
角度のある素材+角のユニバーサル
// Load zone.js for the server.
require('zone.js/dist/zone-node');
require('reflect-metadata');
import * as express from 'express';
import { enableProdMode, ValueProvider } from '@angular/core';
import { renderModuleFactory } from '@angular/platform-server';
import { join } from 'path';
import { readFileSync } from 'fs';
const { provideModuleMap } = require('@nguniversal/module-map-ngfactory-loader');
const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./dist-
server/main.bundle');
const template = readFileSync('./src/index.html', { encoding: 'utf8' });
const app = express();
app.engine('html', (_, options, callback) => {
const opts = {
document: template,
url: options.req.url,
extraProviders: [
<ValueProvider>{
provide: 'REQUEST',
useValue: options.req,
},
provideModuleMap(LAZY_MODULE_MAP)
]
};
renderModuleFactory(AppServerModuleNgFactory, opts)
.then(html => callback(null, html));
});
app.set('view engine', 'html');
app.set('views', 'src');
app.get('*.*', express.static(join(__dirname, 'dist-server')));
app.get('*', (req, res) => {
res.render('index', {req});
});
app.listen(5000,() => {
console.log('listening on http://localhost:5000!');
});
は@角度/材料に関連したこのバグのように見える取得し、将来的に固定したが、いずれかの回避策はありますでしょうか?
私はそれが削除する必要があるような警告のようなバグではないと思います。ユニバーサルとマテリアル2に問題は見つかっていません(https://github.com/JayChase/ngx-express-universalのリファレンスレポがあります)。 – JayChase
また、アンギュラユニバーサルとM2には何の問題もありません。一時的にhammerjsを削除しましたので、プロダクションライブを手に入れることができました – Cacoon