Я работаю над платформой спроса. Я получаю слишком много пробелов в исходном коде (HTML). Я понятия не имею, как я могу его оптимизировать, пожалуйста, помогите мне.
заранее спасибо
Я работаю над платформой спроса. Я получаю слишком много пробелов в исходном коде (HTML). Я понятия не имею, как я могу его оптимизировать, пожалуйста, помогите мне.
заранее спасибо
У нас есть ограниченный контроль над конечным результатом, однако есть тег iscontent с атрибутом compact.
<iscontent type="text/html" compact="true" />
Обратите внимание, что этот тег не фильтрует включенные шаблоны. Для каждого включенного шаблона требуется собственный тег iscontent для сжатия пробелов. Demandware заявляет, что компактность может нарушить расположение тегов, таких как <pre>
, поэтому будьте осторожны.
Зависит от того, что вы подразумеваете под «оптимизировать». Если вы просто хотите уменьшить размер загружаемого файла, предпочтительнее включить сжатие Gzip на веб-сервере, так как оно сворачивает данные, необходимые для пробелов, почти до нуля и, кроме того, сжимает остальную часть вашей разметки. Если вы имели в виду другую причину, пожалуйста, уточните. Если, например, вы хотите, чтобы исходный код был «чистым» для целей отладки/разработки, вы можете добиться того же результата, используя средство очистки исходного кода на стороне клиента (т. е. подключаемый модуль Firefox или интерфейс к HTMLTidy).
Кажется, есть проблемы с локальными включениями в исходный код, оставляющие несколько пустых строк. Modules.isml может быть особенно оскорбительным. Установка compact на «true» не помогает.
Недавно я объединил ответ @sholsinger с Demandware/SFCC Build Suite, который использует grunt, а не gulp, чтобы решить эту проблему.
Основы выглядят примерно так:
Добавил grunt-contrib-htmlmin в task_loader.js и package.json и запустил установку npm.
Добавлен htmlmin.js в grunt/config.
module.exports = {
minify: {
options: {
removeComments: true,
collapseWhitespace: true
},
files: {
'<%= dw_properties.folders.code %>app_core/cartridge/templates/default/util/modules.isml': '<%= dw_properties.folders.code %>app_core/cartridge/templates/default/util/modules.isml',
}
}
}
Затем добавил его в alises.yaml: 'htmlmin:minify'
Если вы используете пакет Build Suite от Demandware, он может объединять пробелы в процессе сборки.
Вы можете найти информацию о Build Suite здесь: https://bitbucket.org/demandware/build-suite (частное репо)
Moku успешно использовала html-minifier пакет для сжатия файлов шаблонов для удаления пробелов на sheplers.com. Мы добавили его в процесс gulp, основанный на скриптах сборки Site Genesis. (примерно конец 2015 г.) Поскольку мы используем gulp, мы использовали пакет оболочки gulp gulp-htmlmin а>. Задача gulp выглядит так:
gulp.task('isml', function() {
var htmlminOptions = {
collapseWhitespace: true,
includeAutoGeneratedTags: false
};
paths.isml.forEach(function(p) {
gulp.src(path.join(rootPath, p), { base: './' })
.pipe(htmlmin(htmlminOptions))
.pipe(gulp.dest('./'));
});
});
Директива путей package.json
для isml
выглядит следующим образом. Обратите внимание, что вы можете добавить в этот список любые файлы ISML, которые генерируют избыточные пробелы, но мы обнаружили, что большая часть недопустимых пробелов была создана только одним этим файлом.
"isml" : [
"app_storefront_core/cartridge/templates/default/util/modules.isml"
]
Я предполагаю, что вы используете их Demandware Commerce или другой своих Услуг. Поскольку они предоставляют весь внутренний код для своих сайтов электронной коммерции, крайне маловероятно, что вы сможете смягчить их «пробелы». Если вы просмотрите исходный код на их собственной домашней странице, вы также увидите массу дополнительных «пробелов». Это просто продукт их системы управления контентом.
Вы просто беспокоитесь о дополнительных накладных расходах (размер файла) страниц или у вас есть другие проблемы?