HTML и статические ресурсы | Vue CLI
HTML
Стартовый файл
Файл public/index.html
— шаблон, который будет обрабатываться html-webpack-plugin. На этапе сборки, ссылки на все ресурсы будут внедряться автоматически. Кроме того, Vue CLI автоматически внедряет подсказки для ресурсов (preload/prefetch
), ссылки на манифест/иконки (когда используется PWA-плагин), и ссылки на ресурсы для файлов JavaScript и CSS, созданных во время сборки.
Интерполяции
Поскольку стартовый файл используется в качестве шаблона, можно использовать синтаксис шаблонов lodash для интерполяции значений в нём:
<%= VALUE %>
для неэкранированной подстановки;<%- VALUE %>
для экранированного HTML-кода;<% expression %>
для потоков управления JavaScript.
В дополнение к значениям по умолчанию, предоставляемым html-webpack-plugin
, все переменные окружения в клиентском коде также доступны напрямую. Например, чтобы использовать значение BASE_URL
:
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
См. также:
- publicPath
Preload
<link rel="preload">
— это подсказки для браузера, указывающие на ресурсы, которые необходимо загрузить в первую очередь. Запросы на такие ресурсы будут отправлены ещё на этапе загрузки страницы, до начала её рендеринга.
По умолчанию приложение Vue CLI автоматически генерирует preload-подсказки для всех файлов, которые необходимы при первоначальном рендеринге вашего приложения.
Эти подсказки внедряются @vue/preload-webpack-plugin и могут быть изменены / удалены с помощью chainWebpack
через config.plugin('preload')
.
Prefetch
<link rel="prefetch">
— это подсказки для ресурсов, которые сообщают браузеру предварительно загрузить контент, который пользователь может посетить в ближайшем будущем, пока браузер находится в режиме ожидания после загрузки страницы.
По умолчанию приложение Vue CLI автоматически генерирует prefetch-подсказки для всех JavaScript-файлов, сгенерированных для асинхронных фрагментов (в результате разделения кода с помощью динамических импортов import()
).
Эти подсказки внедряются @vue/preload-webpack-plugin и могут быть изменены / удалены с помощью chainWebpack
через config.plugin('prefetch')
.
Примечание для многостраничных конфигураций
При использовании многостраничной конфигурации имя плагина нужно изменить в соответствии со структурой prefetch-{pagename}
, например prefetch-app
.
Например:
// vue.config.js module.exports = { chainWebpack: config => { // удаляем prefetch плагин: config.plugins.delete('prefetch') // ИЛИ // изменяем его настройки: config.plugin('prefetch').tap(options => { options[0].fileBlacklist = options[0].fileBlacklist || [] options[0].fileBlacklist.push(/myasyncRoute(. )+?\.js$/) return options }) } }
Когда prefetch плагин отключён, вы можете вручную указывать необходимые фрагменты для prefetch с помощью инлайновых комментариев для webpack:
import(/* webpackPrefetch: true */ './someAsyncComponent.vue')
Webpack добавит prefetch-ссылки когда родительский фрагмент будет загружен.
Совет
Использование prefetch ссылок нагружает канал связи. Если у вас большое приложение с множеством асинхронных фрагментов (chunks) и ваши пользователи в основном используют мобильные устройства (а значит, чувствительны к использованию канала связи), вы можете пожелать отключить использование prefetch ссылок и вручную выбирать фрагменты для prefetch.
Отключение генерации index.html
При использовании Vue CLI с существующим бэкендом, вам может потребоваться отключить генерацию index.html
, чтобы сгенерированные ресурсы могли быть использованы с другим документом по умолчанию. Для этого добавьте в файл vue. config.js
следующее:
// vue.config.js module.exports = { // отключение хэшей в именах файлов filenameHashing: false, // удаление плагинов webpack связанных с HTML chainWebpack: config => { config.plugins.delete('html') config.plugins.delete('preload') config.plugins.delete('prefetch') } }
Однако, это не рекомендуется потому что:
- Жёстко заданные имена файлов затрудняют реализацию эффективного управления кэшированием.
- Жёстко заданные имена файлов плохо работают с разделением кода, что генерирует дополнительные файлы JavaScript с различными именами файлов.
- Жёстко заданные имена файлов не работают с современным режимом.
Вместо этого вы должны использовать опцию indexPath, чтобы указать сгенерированный HTML в качестве шаблона вашего фреймворка на стороне сервера.
Создание многостраничного приложения
Не каждое приложение должно быть одностраничным (SPA). Vue CLI поддерживает создание многостраничных приложений с помощью опции pages
vue. config.js
. Код приложения будет эффективно переиспользоваться между его частями для оптимизации скорости загрузки.Обработка статических ресурсов
Статические ресурсы могут обрабатываться двумя различными способами:
Импорт в JavaScript или указание ссылки на них в шаблоне/CSS с использованием относительных путей. Такие ресурсы будут обрабатываться webpack.
Расположение в каталоге
public
и добавление ссылки на них с использованием абсолютных путей. Такие ресурсы просто копируются и не обрабатываются webpack.
Импорты относительных путей
Если вы ссылаетесь на статический ресурс, используя относительный путь (должен начинаться с .
) внутри JavaScript, CSS или *.vue
файлов, то он будет добавлен в дерево зависимостей webpack. В процессе компиляции все URL ресурсов, такие как <img src="...">
, background: url(...)
и CSS @import
будут обрабатываться как зависимости модуля.
Например, url(./image.png)
будет преобразован в require('./image.png')
, а тег шаблона
<img src="./image.png">
будет скомпилирован в:
h('img', { attrs: { src: require('./image.png') }})
Внутри используется file-loader
для определения конечного расположения файла с хэшем версии и правильный путь относительно корня, а также url-loader
для инлайн-встраивания ресурсов, чей размер меньше 8 КБайт, чтобы уменьшить количество HTTP-запросов к серверу.
Изменить размер можно через chainWebpack. Например, чтобы установить лимит в 4 КБайт:
// vue.config.js module.exports = { chainWebpack: config => { config.module .rule('images') .set('parser', { dataUrlCondition: { maxSize: 4 * 1024 // 4KiB } }) } }
Правила преобразования URL
Если в URL абсолютный путь (например,
/images/foo.png
), он будет оставлен как есть.Если URL начинается с
.
, он будет интерпретироваться как запрос модуля относительно текущего каталога и разрешаться на основе структуры каталогов вашей файловой системы.Если URL начинается с
~
, то всё что после него будет интерпретироваться как запрос модуля. Это означает, что вы можете ссылаться на ресурсы даже внутриnode_modules
:<img src="~some-npm-package/foo.png">
Если URL начинается с
@
, то он также будет интерпретироваться как запрос модуля. Это удобно, потому что Vue CLI по умолчанию добавляет псевдоним@
для<projectRoot>/src
. (только в шаблонах)
Каталог
public
Любые статические ресурсы в каталоге public
просто копируются в каталог итоговой сборки и не будут обрабатываться webpack. Вы должны ссылаться на них, используя абсолютные пути.
Обратите внимание, что мы рекомендуем импортировать ресурсы как часть дерева зависимостей модуля, чтобы они обрабатывались webpack со следующими преимуществами:
- Скрипты и стили минифицируются и объединяются, уменьшая количество сетевых запросов.
- Недостающие файлы вызывают ошибку сборки вместо ошибок 404 для пользователей.
- Имена файлов в результате будут с хэшем, поэтому не нужно беспокоиться о том, что браузеры используют старые версии из кэша.
Каталог public
предоставляется для крайних случаев, поэтому, когда вы ссылаетесь на него по абсолютному пути, необходимо учитывать, где будет опубликовано ваше приложение. Если публикуется не в корне домена, нужно указать префикс для URL-адресов в publicPath:
В
public/index.html
или других HTML-файлах, используемыхhtml-webpack-plugin
в качестве шаблонов, необходимо добавлять префикс в ссылки с помощью<%= BASE_URL %>
:<link rel="icon" href="<%= BASE_URL %>favicon.ico">
В шаблонах потребуется сначала передать
BASE_URL
в компонент:data () { return { publicPath: process.env.BASE_URL } }
А затем использовать в шаблоне:
<img :src="`${publicPath}my-image. png`">
Когда использовать каталог
public
- Вам требуется файл с определённым именем в каталоге сборки.
- У вас тысячи изображений и необходимо динамически ссылаться на их пути.
- Какая-нибудь библиотека несовместима с Webpack и у вас нет другого варианта, кроме как подключения её через тег
<script>
.
Export WP Page to Static HTML/CSS — Плагин для WordPress
- Детали
- Отзывы
- Разработка
Поддержка
Export WP page to static HTML/CSS plugin is s static html site or page generator thats help you to convert your wordpress site or pages to static html website and you can host it on your server, from a static html hosting provider or from a cdn.
It will magically improves your site performance and reduce any security risk because it removes database connection from your server.
Features
- Export html page in one click.
- Lite weight version.
- Easy layout.
- Very easy to use.
Pro Features
- Export full site as html with related pages linking
- Make full offline site.
- Export external url as html.
- «Login as» feature. It will help you to extract pages with any user role view.
- Export posts.
- Export multiple posts or pages in same time.
- Upload exported files to ftp server
- Notification feature
- Background task system. You will not have to stay on the settings page while exporting.
- Export page or post automatically after publishing
- …. and more
Premium version
You can buy the premium from here
More plugins you may like
- AI Content Writing Assistant (Content Writer, ChatGPT, Image Generator) All in One
https://www.youtube.com/watch?v=HvOkfBs7qss - Different Menu in Different Pages
- Pipe ReCaptcha
- Divi MailChimp Extension
- Menu import & export pro
Instalation:
Step 1: Activate the plugin.
Step2: Go to plugins settings page with: Dashboard > Settings > Export WP Pages to Static HTML/CSS
Step3: Select a page which you want to export as html.
Step4: Click on Export html button.
Step5: After successfully loaded click on «Download the file» button.
- Default settings page layout of the plugin.
How do I install the plugin?
Normal installation
- Download the export-wp-page-to-static-html.zip file to your computer.
- Unzip the file.
- Upload the
export-wp-page-to-static-html
directory to your/wp-content/plugins/
directory. - Activate the plugin through the ‘Plugins’ menu in WordPress. After activating the plugin you will auto redirect to the plugin’s settings page.
Where can I get support?
If you get stuck, you can ask for help in the [Export WP Pages to Static HTML/CSS][support forum].
Or you can contact us on our site https://myrecorp. com
Installed, activated and configured the plugin, which worked fine. When trying to export html pages nothing happened. I pressed the button to export the chosen page, but it got stuck at 0% progress, and I waited for more than an hour.
I am using Elementor. The status bar is stuck at 0%. I am unable to export even one page. Seems like a good plugin but I was unable to use it. EDIT After submitting a support request, they fixed the issue. Now I am able to export the Homepage. Thanks!
This worked brilliantly for my one page website, where another recommended plugin completely failed at the task. The only thing that it didn’t manage to migrate correctly was the links on buttons. The plugin knew that there were links present, but just put the a href as hash. Easily corrected in the html code though. It exported my javascript correctly too. It works on older versions of WordPress, so that is handy if you have a website that is out of date and want to migrate it away from WordPress. Really impressed, quick and simple to use — thank you very much!
I’m woefully disappointed in your plugin, which we purchased. It fails to export MANY MANY files, including JPG, PNG, and ever-important JS files. There are so many 0-sized files. The export also hangs more often than it works. You get one star. I also see that within five minutes of filing this review, it was marked as Spam. Who did that? The developer?
easy and quick to export page to html!
Excellent, awesome // incredible plugins
Посмотреть все 33 отзыва
«Export WP Page to Static HTML/CSS» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники
- recorp
Перевести «Export WP Page to Static HTML/CSS» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
2.1.4 — 23 December 2022
- Fixed a minor issue.
2.1.3 — 1 November 2022
- Fixed a major issue.
2.1.2 — 1 November 2022
- Fixed a minor issue.
2.1.1 — 12 August 2022
- Fixed some major issues.
2.1.0 — 23 June 2022
- Added html icon to the menu.
- Added documents exporting system.
- Added audios exporting system.
- Added linked videos exporting system.
- Fast exporting technique has been utilized.
- Fixed images, audios and documents url not exporting issue.
2.0.3 — 30 Septembar 2021
- Fixed one little issue.
2.0.2 — 14 Septembar 2021
- Make plugin compatible with PHP 7.3
- Reduce minimumInputLength to 1 for posts search
2.0.1 — 10 Septembar 2021
- Fixed little issues.
2.0.0 — 9 September 2021
- Added «Advanced Settings» Tab.
- Added checkbox «Create index. html on single page exporting».
- Added checkbox «Save all assets files to the specific directory (css, js, images, fonts)».
- Added textarea «Add contents to the header».
- Added textarea «Add contents to the footer».
- Added button «View Last Exported File».
- Added logs percentage system.
- Hide details logs system by default.
- Added skip assets functionalities.
- Fixed unlimited loading issue.
- Fixed minor issues.
1.0.3 — 22 April 2021
- Fixed little issues.
1.0.2 — 13 March 2021
- Fixed some major issues.
1.0.1 — 28 Jan 2021
- Fixed http site data getting issue.
- Fixed same filename conflict issue.
- Fixed single quotation in filename issue.
- increase posts per page to infinite.
- Added homepage option in the page select box.
1.0.0 — 22 May 2020
- Initialize the plugin
Оценки
Посмотреть все
- 5 звёзд 27
- 4 звезды 0
- 3 звезды 1
- 2 звезды 0
- 1 звезда 5
Войдите, чтобы оставить отзыв.
Участники
- recorp
Поддержка
Решено проблем за последние 2 месяца:
2 из 4
Перейти в форум поддержки
Static HTML – Lit
html
function # Постоянная ссылка на html Просмотреть исходный кодИнтерпретирует литерал шаблона как HTML-шаблон, который может эффективно отображать и обновлять контейнер.
Import
import { html } from 'lit/static-html.js';
Подпись
html(строки, значения): TemplateResult
Параметры
- строки
-
TemplateStringsArray
- values
-
Array
Details
Включает поддержку статических значений из lit-html/static.js
.
литерал
function # Постоянная ссылка на литерал Просмотреть исходный кодТегирует строковый литерал, чтобы он вел себя как часть статических строк шаблона, а не как динамическое значение.
Import
import { literal } from 'lit/static-html.js';
Подпись
литерал(строки, значения): StaticValue
Параметры
- Строки
-
TemplateStringsArray
- Значения
-
Array <Неизвестно>
Дело
значений (обратите внимание, что ненадежный контент никогда не следует передавать в unsafeStatic
).Пользователи должны позаботиться о том, чтобы добавление статической строки в шаблон приводило к корректному формату HTML, иначе шаблоны могут неожиданно сломаться.
Статические значения можно изменить, но они вызовут полную повторную визуализацию, поскольку фактически создают новый шаблон.
svg
function # Постоянная ссылка на svg Просмотреть исходный кодИнтерпретирует литерал шаблона как шаблон SVG, который может эффективно отображать и обновлять контейнер.
Import
import {svg} from 'lit/static-html. js';
Подпись
svg (строки, значения): TemplateResult
Параметры
- Строки
-
TemplatestringsArray
- Значения
-
Array <Неизвестно>
.
function # Постоянная ссылка на источник unsafeStatic View
Оборачивает строку так, чтобы она вел себя как часть строк статического шаблона, а не как динамическое значение.
Import
import { unsafeStatic } from 'lit/static-html.js';
Signature
НЕБЕЗАТИЧЕСКИЙ (значение): StaticValue
Параметры
- Значение
-
Строка
Подробности
Пользователи должны позаботиться о том, чтобы прибавить к статической строке. HTML, иначе шаблоны могут неожиданно сломаться.
Обратите внимание, что эту функцию небезопасно использовать для ненадежного содержимого, поскольку оно будет напрямую преобразовано в HTML. Не передавайте пользовательский ввод в эту функцию без его очистки.
Статические значения можно изменить, но они вызовут полную повторную визуализацию, поскольку фактически создают новый шаблон.
function # Постоянная ссылка на withStatic View source
Обертывает тег шаблона lit-html ( html
или svg
), чтобы добавить поддержку статических значений.
Import
import {withStatic} from 'lit/static-html.js';
Подпись
withStatic(coreTag): (строки: TemplateStringsArray, значения: Array
Параметры
- coreTag
-
(строки: TemplateStringsArray, значения: Array
) => TemplateResult<1> | (строки: TemplateStringsArray, значения: Array ) => TemplateResult<2>
Изменить эту страницу
Краткое руководство: создание статического веб-приложения HTML — служба приложений Azure
Редактировать
Твиттер LinkedIn Фейсбук Электронная почта
- Статья
- 3 минуты на чтение
Служба приложений Azure предоставляет высокомасштабируемую службу веб-хостинга с автоматическим исправлением. В этом кратком руководстве показано, как развернуть базовый сайт HTML+CSS в службе приложений Azure. Вы выполните это краткое руководство в Cloud Shell, но вы также можете выполнять эти команды локально с помощью Azure CLI.
Примечание
Информацию о размещении статических HTML-файлов в бессерверной среде см. в разделе Статические веб-приложения.
Если у вас нет подписки Azure, перед началом работы создайте бесплатную учетную запись Azure.
Предварительные условия
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в разделе Краткое руководство по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, рассмотрите возможность запуска Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, войдите в Azure CLI с помощью команды az login. Чтобы завершить процесс аутентификации, следуйте инструкциям, отображаемым в вашем терминале. Другие варианты входа см. в статье Вход с помощью Azure CLI.
При появлении запроса установите расширение Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Запустите az version, чтобы найти установленную версию и зависимые библиотеки. Чтобы выполнить обновление до последней версии, запустите az upgrade.
Загрузите образец
В Cloud Shell создайте каталог быстрого запуска и перейдите в него.
mkdir быстрый запуск cd $HOME/быстрый старт
Затем выполните следующую команду, чтобы клонировать репозиторий примера приложения в каталог быстрого запуска.
клон git https://github.com/Azure-Samples/html-docs-hello-world.git
Создание веб-приложения
Перейдите в каталог, содержащий пример кода, и выполните команду az webapp up. В следующем примере замените
cd html-docs-hello-world az webapp up --location westeurope --name--html
Примечание
Если вы хотите разместить статическое содержимое в экземпляре службы приложений на базе Linux, настройте PHP в качестве среды выполнения, используя флаги --runtime
и --os-type
:
az webapp up -- location westeurope --name
Контейнер PHP включает веб-сервер, подходящий для размещения статического содержимого HTML.
Команда az webapp up
выполняет следующие действия:
Создание группы ресурсов по умолчанию.
Создайте план обслуживания приложений по умолчанию.
Создайте приложение с указанным именем.
Заархивируйте файлы развертывания из текущего рабочего каталога в веб-приложение.
Выполнение этой команды может занять несколько минут. Во время работы он отображает информацию, аналогичную следующему примеру:
{ "app_url": "https://<имя_приложения>.azurewebsites.net", "местоположение": "западная Европа", "имя": "<имя_приложения>", "ОС": "Виндовс", "resourcegroup": "appsvc_rg_Windows_westeurope", "серверная ферма": "appsvc_asp_Windows_westeurope", "sku": "БЕСПЛАТНО", "src_path": "/home/<username>/quickstart/html-docs-hello-world", < Данные JSON удалены для краткости. > }
Запишите значение resourceGroup
. Он нужен для раздела очистки ресурсов.
Перейдите к приложению
В браузере перейдите по URL-адресу приложения: http://
.
Страница работает как веб-приложение службы приложений Azure.
Поздравляем! Вы развернули свое первое HTML-приложение в службе приложений.
Обновите и повторно разверните приложение
В Cloud Shell введите nano index.html
, чтобы открыть текстовый редактор nano. В теге заголовка
измените «Служба приложений Azure — образец статического HTML-сайта» на «Служба приложений Azure», как показано ниже. 9X для выхода.
Теперь вы повторно развернете приложение с помощью той же команды az webapp up
.
az webapp up --location westeurope --name--html
После завершения развертывания вернитесь в окно браузера, которое открылось на шаге Browse to the app , и обновите страницу.
Управление новым приложением Azure
Чтобы управлять созданным вами веб-приложением, на портале Azure найдите и выберите Службы приложений .