0
0
Lập trình
Admin Team
Admin Teamtechmely

Xây Dựng và Triển Khai Website CMS Miễn Phí (Next.js, Sanity, Netlify)

Đăng vào 6 ngày trước

• 4 phút đọc

Tóm tắt nhanh

Hướng dẫn này có dành cho bạn không?

Hướng dẫn này dành cho bạn nếu:

  • Bạn muốn một trang web công khai, chủ yếu là chỉ đọc (không có nội dung do người dùng cung cấp).
  • Nội dung không cần thay đổi hàng chục lần mỗi ngày, vì mỗi lần cập nhật sẽ kích hoạt một quá trình tái xây dựng.

Lợi ích

Nếu những điều trên phù hợp với nhu cầu của bạn, bạn sẽ nhận được:

  • Giao diện CMS đồ họa để quản lý nội dung trên đám mây.
  • Không cần duy trì server hoặc cơ sở dữ liệu (ít công việc hơn, an toàn hơn).
  • Không có phí triển khai hoặc lưu trữ.
  • Trang tải nhanh, đã được tiền xử lý.
  • Tương tác phía trình duyệt, nếu cần.
  • Một số chức năng form (xem trang liên hệ).

Bộ công cụ

  • 📝 Ngôn ngữ: TypeScript
  • 🛠️ Xây dựng: Tạo trang tĩnh (SSG) với Next.js (App Router)
  • 📄 Frontend: React.js, Tailwind CSS
  • 🗂️ CMS: Sanity (gói miễn phí)
  • 🌍 Hosting: Netlify (gói miễn phí)

Cách hoạt động

Hệ thống quản lý nội dung (CMS)

Nội dung được quản lý thông qua giao diện web do Sanity cung cấp, một nhà cung cấp đám mây với gói miễn phí. Bạn có thể cấp quyền biên tập hoặc quyền quản trị cho người dùng trên giao diện Sanity của bạn (gọi là Studio).

Các loại thực thể, với các thuộc tính và quan hệ của chúng, phải được xác định trong mã và sau đó triển khai vào studio.

Khi các loại này được triển khai, bạn có thể tạo, cập nhật và xóa bản ghi mà không cần cập nhật mã.

Ví dụ: Các loại thực thể cho một Blog:

  • Bài viết: một tập hợp các bản ghi Bài viết, mỗi bản ghi có:
    • tiêu đề (văn bản)
    • ngày xuất bản (ngày tháng)
    • hình ảnh chính (tải lên hình ảnh)
    • nội dung (văn bản phong phú)
    • tác giả (tham chiếu đến Tác giả)
  • Các bản ghi đơn (bản ghi duy nhất), ví dụ:
    • Trang chính (với trường hero)
    • Metadata (cho SEO: tiêu đề, mô tả)

Kết xuất

Các trang được viết bằng React, cho phép hành vi phía trình duyệt nếu cần.

Next.js lấy nội dung từ Sanity và sử dụng nó trong quá trình kết xuất trang.

Các trang được kết xuất tại thời điểm xây dựng (phía server), bởi Next.js với App Router. Đây được gọi là tạo trang tĩnh (SSG) và dẫn đến một tập hợp các tệp: các trang (HTML) và các tài sản của chúng (JS, CSS, hình ảnh, v.v.).

Triển khai

Việc triển khai được quản lý bởi Netlify, một dịch vụ lưu trữ phục vụ các trang web tĩnh miễn phí, miễn là bạn không vượt quá băng thông hàng tháng (hiện tại là 5 GB) và một trăm lần xây dựng.

Bạn sẽ không phải lo lắng về việc cập nhật trang web sau khi có thay đổi: bất cứ khi nào bạn cập nhật nội dung trong Sanity hoặc đẩy thay đổi mã lên GitHub, Netlify sẽ tự động được thông báo và tái xây dựng trang web với nội dung và mã mới nhất.

Bắt đầu

Fork hoặc clone mã nguồn và làm theo hướng dẫn (tất cả các bước kỹ thuật trong README.md):

👉 github.com/arnaudrenaud/ssg-nextjs-cms-sanity


Cũng được xuất bản trên blog cá nhân của tôi: arnaudrenaud.com

Thực hành tốt

  1. Tối ưu hóa SEO: Đảm bảo rằng tất cả các trường Metadata được điền đầy đủ để cải thiện khả năng hiển thị trên công cụ tìm kiếm.
  2. Sao lưu định kỳ: Thực hiện sao lưu nội dung thường xuyên để bảo vệ dữ liệu.

Những cạm bẫy thường gặp

  • Không kiểm soát nội dung: Nếu nội dung có thể thay đổi thường xuyên, có thể cần xem xét một giải pháp khác.
  • Giới hạn băng thông: Chắc chắn rằng bạn không vượt quá giới hạn băng thông miễn phí của Netlify.

Mẹo hiệu suất

  • Sử dụng hình ảnh tối ưu: Nén hình ảnh và sử dụng định dạng hình ảnh mới nhất để tăng tốc độ tải trang.
  • Giảm thiểu JavaScript: Tối ưu hóa mã JavaScript và CSS để giảm kích thước tệp.

Khắc phục sự cố

  • Không thể kết nối đến Sanity: Kiểm tra cài đặt mạng và quyền truy cập API.
  • Lỗi trong quá trình xây dựng: Kiểm tra nhật ký xây dựng trên Netlify để tìm hiểu nguyên nhân.

Câu hỏi thường gặp (FAQ)

1. Tôi có thể sử dụng gói Sanity miễn phí không?
Có, gói miễn phí của Sanity rất đủ cho các dự án nhỏ.

2. Làm thế nào để cập nhật nội dung?
Bạn chỉ cần truy cập vào giao diện Sanity và thực hiện các thay đổi cần thiết.

3. Tôi có thể chuyển sang gói trả phí không?
Có, khi dự án phát triển, bạn có thể nâng cấp lên gói trả phí của Sanity hoặc Netlify.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào