gulp — загружающий подкаталог по умолчанию (example.com/en /)

#gulp

#gulp

Вопрос:

Я использую тему Start Bootstrap SB Admin 2 для создания пользовательского интерфейса многоязычного сайта. Оба языка не будут в точности одинаковыми, поэтому у каждого свой дизайн и, следовательно, разные страницы. Однако оба будут использовать одни и те же ресурсы, CSS и JS-файлы.

Я поместил все свои HTML-файлы (в зависимости от языка) в две вложенные папки в одной папке в корне:

 (root)
|_ css
|_ js
|_ locales
    |_ en
        |_ index.html
    |_ de
        |_ index.html
  

Исходя из моего ограниченного понимания gulp, решение заключается в browserSync функции в моем gulpfile.js файле. browserSync Функция выглядит следующим образом:

 ...
// BrowserSync
function browserSync(done) {
  browsersync.init({
    server: {
      baseDir: "./"
    },
    port: 3000
  });
  done();
}
...
  

Конечно, это не загружает страницу ( Can't GET / ), потому что index.html ее нет в корневой папке ./ .


Чего бы я хотел, так это чтобы gulp загружался example.com/en/ (или localhost:3000/en/ ) по умолчанию, чтобы я мог затем получить доступ к другим каталогам внутри locales папки, таким как de или любым дополнительным языкам.

Вот что я попробовал (1-я попытка)

 // BrowserSync
function browserSync(done) {
  browsersync.init({
    server: {
      baseDir: "./locales/en/"
    },
    port: 3000
  });
  done();
}
  

При этом загружается индексный файл на английском языке, но любая попытка получить доступ к de каталогу не сработает, потому что корневой URL теперь находится внутри en папки.

Вот что я попробовал (2-я попытка)

 function browserSync(done) {
  browsersync.init({
    server: {
      baseDir: "./"
    },
    index: '/pages/en/index.html',
    port: 3000
  });
  done();
}
  

Я ожидал, что это сработает, но произошло то же самое: localhost:3000 был загружен файл с английским индексом, и попытка доступа localhost:3000/de не сработала.

Как я могу настроить загрузку gulp /en/ по умолчанию, чтобы затем я мог получить доступ к дополнительным языкам?

Заранее спасибо.

Ответ №1:

Вы пробовали это?

 function browserSync(done) {
  browsersync.init({
    server: {
      baseDir: "./locales/"
      index: './locales/en/index.html',
    },
    port: 3000
  });
  done();
}