Initial commit
This commit is contained in:
143
public/README.md
Normal file
143
public/README.md
Normal file
@@ -0,0 +1,143 @@
|
||||
# Public Assets Directory
|
||||
|
||||
This directory contains static files that are served directly by Next.js at the root URL.
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
public/
|
||||
├── images/ # Image assets (logos, icons, photos)
|
||||
├── fonts/ # Custom font files
|
||||
├── favicon.ico # Website favicon
|
||||
├── manifest.json # PWA manifest
|
||||
├── robots.txt # Search engine crawling rules
|
||||
└── sitemap.xml # SEO sitemap
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Images
|
||||
|
||||
Place images in `/public/images/` and reference them in your components:
|
||||
|
||||
```tsx
|
||||
// In any component
|
||||
<img src="/images/logo.png" alt="Logo" />
|
||||
|
||||
// Or with Next.js Image component
|
||||
import Image from 'next/image'
|
||||
|
||||
<Image
|
||||
src="/images/hero.jpg"
|
||||
alt="Hero"
|
||||
width={1200}
|
||||
height={600}
|
||||
/>
|
||||
```
|
||||
|
||||
### Fonts
|
||||
|
||||
Place custom fonts in `/public/fonts/` and reference in your CSS:
|
||||
|
||||
```css
|
||||
@font-face {
|
||||
font-family: 'CustomFont';
|
||||
src: url('/fonts/custom-font.woff2') format('woff2'),
|
||||
url('/fonts/custom-font.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
```
|
||||
|
||||
### Favicon
|
||||
|
||||
Replace `favicon.ico` with your own favicon. Supported formats:
|
||||
- `.ico` (recommended for broad compatibility)
|
||||
- `.png` or `.svg` (modern browsers)
|
||||
|
||||
### Manifest (PWA)
|
||||
|
||||
Edit `manifest.json` to customize your Progressive Web App settings:
|
||||
- App name and description
|
||||
- Theme colors
|
||||
- App icons
|
||||
- Display mode
|
||||
|
||||
**Update icons:**
|
||||
- Create 192x192px icon → `/images/icon-192.png`
|
||||
- Create 512x512px icon → `/images/icon-512.png`
|
||||
|
||||
### Robots.txt
|
||||
|
||||
Edit `robots.txt` to control search engine crawling:
|
||||
- Allow/disallow specific paths
|
||||
- Update sitemap URL with your domain
|
||||
|
||||
### Sitemap.xml
|
||||
|
||||
Update `sitemap.xml` with your actual pages:
|
||||
- Replace `your-domain.com` with your actual domain
|
||||
- Add/remove URLs as needed
|
||||
- Update lastmod dates
|
||||
- Set appropriate priorities
|
||||
|
||||
## Best Practices
|
||||
|
||||
### Images
|
||||
- ✅ Use WebP format for better compression
|
||||
- ✅ Optimize images before upload (TinyPNG, ImageOptim)
|
||||
- ✅ Use descriptive filenames: `hero-banner.jpg` not `img1.jpg`
|
||||
- ✅ Keep images under 500KB when possible
|
||||
|
||||
### Fonts
|
||||
- ✅ Use WOFF2 format for best compression
|
||||
- ✅ Subset fonts to include only needed characters
|
||||
- ✅ Limit to 2-3 font families maximum
|
||||
|
||||
### File Organization
|
||||
```
|
||||
images/
|
||||
├── logos/
|
||||
│ ├── logo.svg
|
||||
│ └── logo-white.svg
|
||||
├── icons/
|
||||
│ ├── icon-192.png
|
||||
│ └── icon-512.png
|
||||
└── content/
|
||||
├── hero-banner.jpg
|
||||
└── about-team.jpg
|
||||
```
|
||||
|
||||
## Accessing Static Files
|
||||
|
||||
All files in `public/` are accessible at the root URL:
|
||||
|
||||
- `/public/images/logo.png` → `https://yourdomain.com/images/logo.png`
|
||||
- `/public/robots.txt` → `https://yourdomain.com/robots.txt`
|
||||
- `/public/manifest.json` → `https://yourdomain.com/manifest.json`
|
||||
|
||||
## SEO & Performance
|
||||
|
||||
### For Better SEO:
|
||||
1. Update `robots.txt` with your actual domain
|
||||
2. Customize `sitemap.xml` with all your pages
|
||||
3. Add Open Graph images to `/images/`
|
||||
4. Create proper favicons for all devices
|
||||
|
||||
### For Better Performance:
|
||||
1. Optimize all images before uploading
|
||||
2. Use Next.js `<Image>` component for automatic optimization
|
||||
3. Enable caching headers in production
|
||||
4. Use SVG for logos and icons when possible
|
||||
|
||||
## Production Deployment
|
||||
|
||||
The `public/` folder is automatically included in your Docker image and deployed with your application. No additional configuration needed!
|
||||
|
||||
## Notes
|
||||
|
||||
- ⚠️ Don't put sensitive files here - they're publicly accessible!
|
||||
- ⚠️ File names are case-sensitive on Linux servers
|
||||
- ⚠️ Avoid spaces in filenames - use hyphens instead
|
||||
- ✅ This directory is included in your Git repository
|
||||
- ✅ Works seamlessly with Coolify deployment
|
||||
Reference in New Issue
Block a user