#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();
}