dat-ssg
เป็นเครื่องมือบรรทัดคำสั่งที่ใช้การกำหนดค่าในโฟลเดอร์เพื่อดาวน์โหลดเว็บไซต์ด้วย wget
และเผยแพร่เนื้อหาไปที่:
netlify
dat
ก่อน dat-ssg
หากต้องการโฮสต์เว็บไซต์บน dat คุณสามารถแก้ไขด้วยตนเองหรือตั้งค่าตัวสร้างไซต์แบบคงที่และระบบ CI เพื่อทำการเผยแพร่ อย่างไรก็ตาม วิธีนี้จะป้องกันการใช้ cms ใดๆ ไม่ว่าจะเป็น Ghost, Wordpress, Drupal หรือระบบการเผยแพร่แบบไดนามิกอื่น ๆ ด้วย dat-ssg
คุณสามารถเริ่มใช้ระบบเหล่านั้นและโฮสต์ไซต์เพื่อให้สามารถเข้าถึงได้ผ่าน dat
นอกจากนี้ยังค่อนข้างมีประโยชน์หากคุณต้องการใช้โฮสติ้งไซต์แบบคงที่ราคาถูกกว่าซึ่งปรับใช้ได้ดีใน cdn ทั่วโลก
สำหรับ dat-ssg
คุณต้องมีสองโฟลเดอร์: _"configuration-folder" และ "work-folder"
.out
และ .error
สำหรับกระบวนการของการกำหนดค่าแต่ละรายการ dat-ssg
ต้องการ wget
และ git
ที่มีอยู่ในบรรทัดคำสั่ง wget
ใช้เพื่อดาวน์โหลดไซต์ ส่วน git
ใช้เพื่อทริกเกอร์การเผยแพร่หากไซต์มีการเปลี่ยนแปลงเท่านั้น
dat-ssg
จะเขียนไฟล์ที่ดาวน์โหลดใหม่ (เช่น เมตาแท็กและลิงก์) เพื่อให้ดูถูกต้องเมื่อโฮสต์บนเป้าหมาย
dat-ssg
เป็นแอปพลิเคชั่นโหนดและสามารถรันได้อย่างรวดเร็วโดยใช้
$ npx dat-ssg --work-folder ./work --configuration-folder ./config
กระบวนการจะค้นหาการเปลี่ยนแปลงในโฟลเดอร์การกำหนดค่าและเริ่มกระบวนการสำหรับแต่ละไฟล์
สำหรับการกำหนดค่า คุณสามารถเพิ่มไฟล์ที่ลงท้ายด้วย .js
ลงในโฟลเดอร์การกำหนดค่าได้
ไฟล์จำเป็นต้องส่งออกวัตถุจาวาสคริปต์ที่มีลักษณะดังนี้:
module . exports = {
title : "My Site" , // Title to be used in the process, e.g. for the dat config file
description : "This is my homepage" , // Description used for the process, e.g. for the dat config file
domain : "mydomain.com" , // domain to download data from
https : true , // The domain support https
newDomain : "https://targetdomain.org" , // domain of the new site (needed for content-rewrites)
/*
* wget will download all files that are found at the domain's root but there may be extra roots to look for content.
* You need to specify all the roots
*/
roots : [
"/" ,
"/b.html" ,
"/c.html"
] ,
notFound : '/404/' , // Adds '/404/ to the roots and adds 404 configuration to the deployments (netlify, dat,...)
// Interval to look for updates
update : 1000 * 60 * 20 , // Update every 10 minutes
// The process will use following user name to make commits
git : {
email : "[email protected]" ,
name : "The Name"
} ,
// If you want to publish the page to netlify you need to specify this property, else you can skip it!
netlify : {
siteId : "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" , // Id, provided in the netlify setup
production : false , // Publish as production = true, else = false
/*
* Auth token as provided through the netlify user interface, can be also loaded through `process.env`
*/
authToken : "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ,
config : `# Optional configuration, see https://docs.netlify.com/configure-builds/file-based-configuration/#sample-file`
} ,
dat : {
// Time to push after changes, in which a hosting service can connect and download the latest update.
pushTime : 1000 * 60 * 2 // 2 minutes
}
}
ทุกครั้งที่คุณเปลี่ยนไฟล์ กระบวนการจะเริ่มต้นใหม่และการปรับใช้จะถูกทริกเกอร์
CMS บางตัวเพิ่มพารามิเตอร์การสืบค้นให้กับลิงก์ javascript หรือ css เช่น: assets/main/css/main.css?v=25be6de7e6
ไฟล์เหล่านี้จะถูกแปลงด้วย wget เป็น: assets/main/css/main.css@v=25be6de7e6.css
.
คุณอาจต้องการระบุการตั้งค่าแคชใน netlify.config
เพื่อแคชไฟล์ "ตลอดไป":
[[ headers ]]
for = " /*@v=* "
[ headers . values ]
cache-control = " public, max-age=31536000 "
ครั้งแรกที่ดึงข้อมูลการกำหนดค่าจะสร้างข้อมูลใหม่ในโฟลเดอร์งาน ข้อมูลใหม่นี้จะมีลิงก์ใหม่ ดังนั้นทุกครั้งที่คุณลบโฟลเดอร์ คุณจะต้องอัปเดตลิงก์การจำลองและลิงก์ที่คุณใช้ในการตั้งค่า dat-dns ของคุณ
โครงการนี้ได้รับเงินทุนจากโครงการวิจัยและนวัตกรรม Horizon 2020 ของสหภาพยุโรป ภายในกรอบของโครงการ LEDGER ที่ได้รับทุนสนับสนุนภายใต้ข้อตกลงการให้ทุนหมายเลข 825268
เอ็มไอที