Как настроить baseurl для нуньюков - PullRequest
0 голосов
/ 08 мая 2019

Я хочу развернуть сайт на разных серверах для тестирования, производства и т. Д. Поэтому предпочтительным методом было бы определение базового пути путем изменения одной переменной или параметра. Каков наилучший метод для реализации этого?

В настоящее время я установил переменную в файле макета следующим образом.

{% set siteBaseurl = '/demo' %}

Используется везде, где я определяю пути следующим образом

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

1 Ответ

0 голосов
/ 08 мая 2019

Я нашел идеальное решение.Как упоминалось в пакете 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" />

Надеюсь, это поможет

...