我们正在尝试使用Django模板开发一个多页面的网站。我们已经努力使用webpack将font-end与Django项目分开。 webpack-jade-multipage-starter
我们使用Jade作为html预编译器,Babel作为js预编译器,SCSS作为css预编译器。输出如下:
静态文件夹包含 css , js 和 img 。
模板是django模板
dist 文件夹中的html是静态页面。
现在的问题是,每当我们想要测试django模板时,我们需要构建项目并将django模板复制到django项目的模板文件夹(虽然我们已经知道了),并在浏览器中刷新页面。是否有node-django服务器,可以在节点中呈现django模板,以便我们可以在这种情况下进行实时重新加载。
更新:尝试将swig配置为模板渲染引擎:
var app = express()
var compiler = webpack(webpackConfig)
var devMiddleware = require('webpack-dev-middleware')(compiler, {
publicPath: webpackConfig.output.publicPath,
stats: {
colors: true,
chunks: false
}
})
var hotMiddleware = require('webpack-hot-middleware')(compiler)
// force page reload when html-webpack-plugin template changes
compiler.plugin('compilation', function (compilation) {
compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
hotMiddleware.publish({ action: 'reload' })
cb()
})
})
// serve webpack bundle output
app.use(devMiddleware)
// enable hot-reload and state-preserving
// compilation error display
app.use(hotMiddleware)
// serve pure static assets
var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
app.use(staticPath, express.static('./static'))
app.set('views', webpackConfig.output.publicPath)
app.engine('html', swig.renderFile)
app.set('view engine', 'html')
app.set('view cache', true);
swig.setDefaults({ cache: false });
router.get('/index', function(req, res, next) {
res.render('post_index.dj.html', {});
});
app.use(router);
在路由器中,似乎模板引擎试图在磁盘中找到模板,而不是在内存中。我不知道如何配置它。