| @@ -19,8 +19,16 @@ class PostsController < ApplicationController | |||||
| posts = posts.first(limit) | posts = posts.first(limit) | ||||
| end | end | ||||
| render json: { posts: posts.as_json(include: { tags: { only: [:id, :name, :category, :post_count] } }), | |||||
| next_cursor: } | |||||
| render json: { posts: posts.map { |post| | |||||
| post.as_json(include: { tags: { only: [:id, :name, :category, :post_count] } }).tap { |json| | |||||
| json['thumbnail'] = | |||||
| if post.thumbnail.attached? | |||||
| rails_storage_proxy_url(post.thumbnail, only_path: false) | |||||
| else | |||||
| nil | |||||
| end | |||||
| } | |||||
| }, next_cursor: } | |||||
| end | end | ||||
| def random | def random | ||||
| @@ -1,3 +1,9 @@ | |||||
| <IfModule mod_headers.c> | |||||
| <FilesMatch "\.(css|js|jpg|png|webp|woff2?)$"> | |||||
| Header set Cache-Control "max-age=31536000, public" | |||||
| </FilesMatch> | |||||
| </IfModule> | |||||
| <IfModule mod_rewrite.c> | <IfModule mod_rewrite.c> | ||||
| RewriteEngine On | RewriteEngine On | ||||
| RewriteBase / | RewriteBase / | ||||
| @@ -101,6 +101,9 @@ export default () => { | |||||
| <img src={post.thumbnail || post.thumbnailBase || undefined} | <img src={post.thumbnail || post.thumbnailBase || undefined} | ||||
| alt={post.title || post.url} | alt={post.title || post.url} | ||||
| title={post.title || post.url || undefined} | title={post.title || post.url || undefined} | ||||
| loading="eager" | |||||
| fetchPriority="high" | |||||
| decoding="async" | |||||
| className="object-none w-full h-full" /> | className="object-none w-full h-full" /> | ||||
| </Link>))} | </Link>))} | ||||
| </div>) | </div>) | ||||