【问题标题】:How to setup the baseurl for nunjucks如何为 nunjucks 设置 baseurl
【发布时间】:2019-05-08 12:39:05
【问题描述】:

我想将站点部署到不同的服务器以进行测试、生产等。因此,通过更改一个变量或设置来定义基本路径将是首选方法。实现这一点的最佳方法是什么?

目前我在布局文件中设置了如下变量。

{% set siteBaseurl = '/demo' %}

它在其他任何地方都使用,我将路径定义如下

<img src="{{ siteBaseurl }}/images/logo.png" />

【问题讨论】:

    标签: npm gulp nunjucks gulp-nunjucks-render


    【解决方案1】:

    我找到了完美的解决方案。如 gulp-nunjucks-render 包中所述,您可以通过 gulp 任务将变量解析为模板。使用 dotenv 您可以从单个配置文件中获取它。这是我的设置方式

    .env

    NODE_ENV=development
    BASEURL=\demo
    

    gulpfile.js

    const nunjucksData = {
        baseurl: process.env.BASEURL
    };
    
    gulp.task('nunjucks', function () {
        nunjucksRender.nunjucks.configure(['app/templates/']);
        // Gets .html and .nunjucks files in pages
        return gulp.src('app/pages/**/*.+(html|njk|nunj|nunjucks)')
            // Renders template with nunjucks
            .pipe(nunjucksRender({
                data: nunjucksData,
                path: ['app/templates/'] // String or Array
            }))
            .pipe(gulpif(isProd, htmlmin()))
            // output files in app folder
            .pipe(gulp.dest('dist'));
    });
    

    layout.njk

    <img src="{{ baseurl }}/images/logo.png" />
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-13
      • 2012-07-26
      • 1970-01-01
      • 2020-06-16
      • 2020-01-21
      • 1970-01-01
      • 1970-01-01
      • 2016-07-07
      相关资源
      最近更新 更多