diff --git a/docker-compose.yml b/docker-compose.yml index 16e754f..427dbff 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -71,6 +71,7 @@ services: volumes: - backend_uploads:/app/server/uploads - backend_data:/app/server/data + - strapi_uploads:/app/strapi-cms/public/uploads depends_on: - strapi-cms networks: diff --git a/nginx.conf b/nginx.conf index 334d662..7108ee9 100644 --- a/nginx.conf +++ b/nginx.conf @@ -2,6 +2,8 @@ server { listen 80; server_name localhost; + client_max_body_size 100M; + root /usr/share/nginx/html; index index.html; @@ -11,7 +13,39 @@ server { gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; - # Explicit handling for static assets (JavaScript, CSS, images, fonts) + # Priority prefix location for uploads - proxies to Express backend container + location ^~ /uploads/ { + proxy_pass http://backend:3005/uploads/; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + proxy_connect_timeout 60s; + proxy_send_timeout 60s; + proxy_read_timeout 60s; + } + + # Priority prefix location for backend API + location ^~ /api/ { + proxy_pass http://backend:3005/api/; + 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; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # Prevent 504 Gateway Timeouts + proxy_connect_timeout 60s; + proxy_send_timeout 60s; + proxy_read_timeout 60s; + } + + # Explicit handling for static JS, CSS, images, and fonts location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|map)$ { try_files $uri /citpl_website$uri =404; expires 30d; @@ -39,26 +73,6 @@ server { try_files $uri $uri/ /preview.html; } - # Proxy backend API requests to the Express backend container - location /api/ { - proxy_pass http://backend:3005/api/; - 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; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - # Proxy media upload requests to backend - location /uploads/ { - proxy_pass http://backend:3005/uploads/; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - } - error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; diff --git a/src/components/BlogDetailPage.jsx b/src/components/BlogDetailPage.jsx index f4f8515..ccd666e 100644 --- a/src/components/BlogDetailPage.jsx +++ b/src/components/BlogDetailPage.jsx @@ -344,7 +344,7 @@ export default function BlogDetailPage({ blog, allBlogs = [], isMobile, onNaviga {/* HERO FEATURED IMAGE */} - {blog.image && ( + {(blog.image || blog.coverImage || blog.ogImage) && (