Разработка проекта завершена, и следующий шаг — выход в онлайн.vueРазвертывание проекта, фронтенд нашей компании развернут вnginxна сервере, оnginxСвязанные документы см. в ней самостоятельно; в этой статье описаны только некоторые проблемы, возникшие во время развертывания.
Пакет
vueПосле упаковки проекта создается ряд статических файлов, включая запрос проекта.IPВсе в пакет, если фоновая служба изменится, то ваш интерфейсный файл необходимо перекомпилировать и запаковать.Резюме проекта фонового управленияУпомянутый внешний интерфейс сам запрашивает файл конфигурации и динамически изменяет вашу соответствующую конфигурацию.
- статические файлы
// config.json
{
"api": "test.com"
}
- файл запроса
в проектеstoreПри запросе файла конфигурации напишитеstate, вы можете получить глобальный доступ к своей конфигурации, когда вы вызываете ее
// api.js
GetConfigApi() {
return new Promise((resolve, reject) => {
axios
.get(`/config.json?v=${new Date().getTime()}`)
.then(result => {
const configApi = {
API: result.data['api'], // 统一接口
};
resolve(configApi);
})
.catch(error => {
reject(error);
});
});
}
развертывание nginx
потому чтоvue-routerимеютhashа такжеhistoryДва разных режима, используйте разные режимы,nginxкомплектация другая,hashВ моде менять не нужно, нужно только развернуть свои front-end файлы, так что обсуждаем только здесьhistoryв режиме.confмодификация файла
модификация доступаnginxконфигурационный файлnginx.conf
server {
listen 80;
server_name test.com;
location / {
root /front; // 前端文件路径
index index.html; // hash模式只配置访问html就可以了
try_files $uri $uri/ /index.html; // history模式下
}
}
После завершения модификации перезапустите службу доступаtest.com
Развернуть в подкаталог
Когда нам нужно развернуть проект в подкаталоге, нам нужно изменить файл проектаBASE_URL, который создает абсолютный путь доступа в подкаталоге. изменить соответствующие.confконфигурационный файл
server {
listen 80;
server_name test.com;
location /demo { // 子级目录
alias /front/demo;
index index.html;
try_files $uri $uri/ /demo/index.html;
}
}
После завершения модификации перезапустите службу доступаtest.com/demo
Обработка кеша
Статические файлы внешнего интерфейса часто кэшируются браузером, и после компиляции проектаjs,css, фотки и т.п. собственно уже естьhashзначение для удаления кеша, но после обновления проекта все равно будет проблема с кешем, это связано с тем, что вся запись нашего проекта находится вindex.htmlфайл, браузер фактически кэширует нашhtmlстраницу, поэтому мы собираемсяnginxсообщает браузеру,htmlФайлы не кэшируются.
location /demo {
add_header Cache-Control 'private, no-store, max-age=0';
...
}
Суммировать
Обсуждается только здесьnginxсвязанные развертывания, на самом делеvue-routerДокументацияВыше приведены соответствующие примеры конфигурации.
Другие сводные статьи:
- WebPack Обычная схема оптимизации упаковки
- План обработки связи компонентов
- Резюме проекта фонового управления
Добро пожаловать, чтобы обратить внимание на официальный аккаунт, каждый может общаться и прогрессировать вместе.