Видео
Абсолютные и относительные ссылки
- https://students.cs-develop.ru/5019/static/index.html - абсолютная ссылка
- /_next/static/css/d605c4643414bcf6.css - относительная ссылка. Обращение будет происходить по адресу https://students.cs-develop.ru + /_next/static/css/d605c4643414bcf6.css
Переменные окружения (Environment variables)
При разработке программист часто запускает, тестирует, отлаживает приложение. При отладке могут использоваться тестовые данные, базы данных, тестовые API, ключи и т.п.
После отладки программист развертывает приложение в рабочей среде (deploy to production) и оно уже работает с реальными данными, базами данных, API, ключами и т.п.
Т.е. одно и то же приложение, запускаемое при разработке, и запускаемое в рабочей среде должно иметь разное окружение. Для этого предназначены переменные окружения (в Node JS это специальные файлы .env в корне проекта). Для запуска на ноутбуке программиста эти переменные будут иметь одни значения (тестовые), для запуска на сервере - другие (реальные).
Настройка URL проекта
- Изменить содержимое next.config.js на
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
assetPrefix: process.env.SELF_PATH,
}
module.exports = nextConfig
- Создать в корне проекта файл .env.development с содержимым
SELF_PATH=/
- Создать в корне проекта файл .env.production с содержимым
SELF_PATH=/5019/static/
5019 - ваш публичный tcp-порт
Объект, JSON
{
"fio": "Петров Петро Петрович",
"age": 30
"childrens": [
{
"fio": "Петров Мексим Петрович",
"age": 5
},
{
"fio": "Петрова Вера Петровна",
"age": 7
},
],
"professions": [
"Электрик",
"Сварщик"
]
}
Чтение файла и десериализация строки в объект
with open("future.json") as futureFile:
futureString = futureFile.read()
futureObject = json.loads(futureString)
Сериализация объекта и запись в файл
with open("settings.json", "w") as settingsFile:
settingsObject = {
"mode": "Запись предсказаний"
}
settingsString = json.dumps(settingsObject, ensure_ascii=False)
settingsFile.write(settingsString)
Домашнее задание
- Настроить переменные окружения .env.development и .env.production. Экспортировать статические файлы и разместить на Linux.
- Доработать диалог с Алисой, чтобы в начале диалога Алиса предлагала выбрать тему из списка. Список должен размещаться в файле themes.json в формате:
[
"проблемы",
"личность",
"отношения"
]
3. Доработать диалог с Алисой, чтобы после выбора темы Алиса должна сообщить случайное предсказание по выбранной теме из файла future.json. Формат файла:
[
{
"theme": "проблемы",
"future": "У вас больше не будет проблем"
},
{
"theme": "проблемы",
"future": "Все проблемы уйдут"
},
{
"theme": "личность",
"future": "У вас великое будущее"
},
{
"theme": "личность",
"future": "Вы станете великим программистом"
},
{
"theme": "отношения",
"future": "Вы встретите любовь"
},
{
"theme": "отношения",
"future": "Вы встретите друга"
},
]
4. Доработать диалог с Алисой, чтобы все диалоги записывались в файл dialogs.json формата:
[
"Выберите тему гадания",
"отношения",
"Вы встретите любовь"
]