112 lines
5.4 KiB
Markdown
112 lines
5.4 KiB
Markdown
# 🔧 Исправления проблем
|
||
|
||
## ✅ Исправленные проблемы
|
||
|
||
### 1. Плеер находится слишком низко (уходит под меню)
|
||
**Исправлено в:** `frontend/src/components/MiniPlayer.css`
|
||
- Изменено `bottom: 60px` → `bottom: 70px`
|
||
- Увеличен `z-index: 45` → `z-index: 60`
|
||
- Добавлен `padding-bottom: env(safe-area-inset-bottom)` для безопасной зоны
|
||
|
||
### 2. Альбом не загружается (ошибка 413)
|
||
**Исправлено в:**
|
||
- `backend/server.js` - увеличен лимит express.json до `105mb`
|
||
- `backend/routes/music.js` - увеличен лимит multer до `105MB`
|
||
|
||
**Изменения:**
|
||
```javascript
|
||
// server.js
|
||
app.use(express.json({ limit: '105mb' }));
|
||
app.use(express.urlencoded({ extended: true, limit: '105mb' }));
|
||
|
||
// routes/music.js
|
||
limits: {
|
||
fileSize: 105 * 1024 * 1024 // 105MB для ZIP альбомов
|
||
}
|
||
```
|
||
|
||
### 3. Музыка не воспроизводится
|
||
**Исправлено в:** `frontend/src/contexts/MusicPlayerContext.jsx`
|
||
- Добавлено формирование полного URL для треков
|
||
- Относительные пути преобразуются в абсолютные с использованием `VITE_API_URL`
|
||
- Добавлен `audioRef.current.load()` для перезагрузки источника
|
||
|
||
**Изменения:**
|
||
```javascript
|
||
let audioUrl = track.fileUrl
|
||
if (audioUrl && audioUrl.startsWith('/')) {
|
||
const apiUrl = import.meta.env.VITE_API_URL || 'http://localhost:3000/api'
|
||
audioUrl = apiUrl.replace('/api', '') + audioUrl
|
||
}
|
||
audioRef.current.src = audioUrl
|
||
audioRef.current.load()
|
||
```
|
||
|
||
### 4. Обложка у трека не грузится
|
||
**Исправлено в:**
|
||
- `frontend/src/components/MusicAttachment.jsx`
|
||
- `frontend/src/components/MiniPlayer.jsx`
|
||
- `frontend/src/components/FullPlayer.jsx`
|
||
- `frontend/src/pages/MediaMusic.jsx`
|
||
- `frontend/src/components/MusicPickerModal.jsx`
|
||
|
||
**Изменения:**
|
||
- Добавлено формирование полного URL для обложек (как для треков)
|
||
- Добавлена обработка ошибок загрузки изображений (`onError`)
|
||
- При ошибке загрузки показывается fallback иконка
|
||
|
||
### 5. Иконка furry не лиса
|
||
**Исправлено в:** `frontend/src/pages/Media.jsx`
|
||
- Заменена SVG иконка на правильную иконку лисы в стиле аниме
|
||
- Иконка теперь отображает мордочку лисы с ушами, глазами, носом и хвостом
|
||
|
||
### 6. Не получается создать пост с треком
|
||
**Проверено:**
|
||
- `frontend/src/components/CreatePostModal.jsx` - правильно передает `attachedTrackId`
|
||
- `backend/routes/posts.js` - правильно сохраняет `attachedTrack` в пост
|
||
- `backend/routes/posts.js` - правильно populate'ит `attachedTrack` с `artist` и `album` при получении постов
|
||
|
||
**Статус:** Работает корректно, `attachedTrackId` передается через FormData и сохраняется в MongoDB.
|
||
|
||
## 📝 Дополнительные изменения
|
||
|
||
### Формирование URL для файлов
|
||
Все компоненты, которые отображают обложки треков, теперь:
|
||
1. Проверяют, является ли URL абсолютным (начинается с `http`)
|
||
2. Если относительный, добавляют базовый URL из `VITE_API_URL`
|
||
3. Обрабатывают ошибки загрузки изображений
|
||
|
||
### Обработка ошибок
|
||
Добавлена обработка ошибок при загрузке изображений:
|
||
- При ошибке изображение скрывается
|
||
- Показывается fallback иконка `Music`
|
||
|
||
## 🔍 Что проверить
|
||
|
||
1. **Воспроизведение музыки:**
|
||
- Убедитесь, что треки воспроизводятся при клике
|
||
- Проверьте работу мини-плеера и полного плеера
|
||
|
||
2. **Загрузка альбомов:**
|
||
- Попробуйте загрузить ZIP альбом размером до 105MB
|
||
- Проверьте извлечение метаданных и обложек
|
||
|
||
3. **Обложки треков:**
|
||
- Проверьте отображение обложек в списке треков
|
||
- Проверьте обложки в постах с треками
|
||
- Проверьте обложки в мини-плеере и полном плеере
|
||
|
||
4. **Создание постов с треками:**
|
||
- Создайте пост с прикрепленным треком
|
||
- Проверьте отображение трека в посте
|
||
- Проверьте воспроизведение трека из поста
|
||
|
||
5. **Иконка лисы:**
|
||
- Проверьте отображение иконки лисы на странице Media
|
||
- Иконка должна быть видна как лиса в стиле аниме
|
||
|
||
---
|
||
|
||
**Все исправления готовы к тестированию! ✅**
|
||
|