节点服务器渲染django模板

时间:2016-07-26 03:22:50

标签: javascript python node.js django

我们正在尝试使用Django模板开发一个多页面的网站。我们已经努力使用webpack将font-end与Django项目分开。 webpack-jade-multipage-starter

我们使用Jade作为html预编译器,Babel作为js预编译器,SCSS作为css预编译器。输出如下:

enter image description here

静态文件夹包含 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);
在路由器中,似乎模板引擎试图在磁盘中找到模板,而不是在内存中。我不知道如何配置它。

0 个答案:

没有答案