ваше сообщение коммита
This commit is contained in:
3
frontend/.env.example
Normal file
3
frontend/.env.example
Normal file
@@ -0,0 +1,3 @@
|
||||
VITE_APP_ETHEREUM_NETWORK_URL=https://your-ethereum-network-url
|
||||
|
||||
VITE_API_URL=http://localhost:8000
|
||||
63
frontend/.gitignore
vendored
63
frontend/.gitignore
vendored
@@ -1,23 +1,7 @@
|
||||
# Зависимости
|
||||
node_modules/
|
||||
yarn-error.log
|
||||
|
||||
# Переменные окружения
|
||||
.env
|
||||
.env.local
|
||||
.env.development
|
||||
.env.test
|
||||
.env.production
|
||||
|
||||
# Сборка
|
||||
dist/
|
||||
dist-ssr/
|
||||
build/
|
||||
|
||||
# Кэш
|
||||
.cache/
|
||||
.temp/
|
||||
.vite/
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# Логи
|
||||
logs/
|
||||
@@ -25,21 +9,36 @@ logs/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
# Файлы IDE
|
||||
.idea/
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
# Файлы окружения
|
||||
.env
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
# Системные файлы
|
||||
# Кэши и временные файлы
|
||||
.cache/
|
||||
.temp/
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
.idea/
|
||||
.vscode/
|
||||
*.swp
|
||||
*.swo
|
||||
|
||||
# Локальные файлы
|
||||
*.local
|
||||
# Файлы сборки
|
||||
/dist
|
||||
/dist-ssr
|
||||
/build
|
||||
*.local
|
||||
|
||||
# Тесты
|
||||
/coverage
|
||||
|
||||
# Приватные ключи и сертификаты
|
||||
*.pem
|
||||
*.key
|
||||
|
||||
# Локальные настройки
|
||||
.prettierrc.local
|
||||
.eslintrc.local
|
||||
21
frontend/Dockerfile
Normal file
21
frontend/Dockerfile
Normal file
@@ -0,0 +1,21 @@
|
||||
FROM node:20-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Устанавливаем дополнительные зависимости
|
||||
RUN apk add --no-cache python3 make g++
|
||||
|
||||
# Копируем package.json и yarn.lock для установки зависимостей
|
||||
COPY package.json yarn.lock ./
|
||||
|
||||
# Устанавливаем зависимости
|
||||
RUN yarn install --frozen-lockfile
|
||||
|
||||
# Копируем остальные файлы проекта
|
||||
COPY . .
|
||||
|
||||
# Экспозим порт
|
||||
EXPOSE 5173
|
||||
|
||||
# Команда запуска по умолчанию
|
||||
CMD ["yarn", "run", "dev"]
|
||||
28
frontend/nginx.conf
Normal file
28
frontend/nginx.conf
Normal file
@@ -0,0 +1,28 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name localhost;
|
||||
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
|
||||
# Поддержка SPA (Single Page Application)
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
|
||||
# Настройка кеширования для статических файлов
|
||||
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
|
||||
expires 30d;
|
||||
add_header Cache-Control "public, no-transform";
|
||||
}
|
||||
|
||||
# Настройка для API запросов на бэкенд
|
||||
location /api/ {
|
||||
proxy_pass http://backend:8000/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,18 @@
|
||||
import axios from 'axios';
|
||||
|
||||
// Определяем baseURL в зависимости от окружения
|
||||
const getBaseUrl = () => {
|
||||
// В браузере используем localhost
|
||||
if (typeof window !== 'undefined' && window.location.hostname === 'localhost') {
|
||||
return 'http://localhost:8000';
|
||||
}
|
||||
// В других случаях используем переменную окружения
|
||||
return import.meta.env.VITE_API_URL || '';
|
||||
};
|
||||
|
||||
// Создаем экземпляр axios с базовым URL
|
||||
const api = axios.create({
|
||||
baseURL: import.meta.env.VITE_API_URL || '',
|
||||
baseURL: getBaseUrl(),
|
||||
withCredentials: true,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
|
||||
@@ -7,7 +7,9 @@ import router from './router';
|
||||
import axios from 'axios';
|
||||
|
||||
// Настройка axios
|
||||
axios.defaults.baseURL = import.meta.env.VITE_API_URL || '';
|
||||
// В Docker контейнере localhost:8000 не работает, поэтому используем явное значение
|
||||
const apiUrl = window.location.hostname === 'localhost' ? 'http://localhost:8000' : import.meta.env.VITE_API_URL;
|
||||
axios.defaults.baseURL = apiUrl;
|
||||
axios.defaults.withCredentials = true;
|
||||
|
||||
// Создаем и монтируем приложение Vue
|
||||
@@ -25,7 +27,7 @@ app.use(router);
|
||||
// ]).catch(err => console.error('Failed to load API mocks:', err));
|
||||
// }
|
||||
|
||||
console.log('API URL:', import.meta.env.VITE_API_URL);
|
||||
console.log('API URL:', apiUrl);
|
||||
console.log('main.js: Starting application with router');
|
||||
|
||||
app.mount('#app');
|
||||
|
||||
Reference in New Issue
Block a user