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는 자바스크립트 또는 CSS 링크에 쿼리 매개변수를 추가합니다(예: 자산/main/css/main.css?v=25be6de7e6). 이러한 파일은 wget을 사용하여 다음으로 변환됩니다: assets/main/css/main.css@v=25be6de7e6.css
assets/main/css/main.css?v=25be6de7e6
.
파일을 "영원히" 캐시하기 위해 netlify.config
에서 캐시 설정을 지정할 수 있습니다.
[[ headers ]]
for = " /*@v=* "
[ headers . values ]
cache-control = " public, max-age=31536000 "
구성을 처음 가져오면 작업 폴더에 새 데이터가 생성됩니다. 이 새 데이터에는 새 링크가 있으므로 폴더를 삭제할 때마다 복제 링크와 dat-dns 설정에서 사용한 링크를 업데이트해야 합니다.
이 프로젝트는 보조금 계약 No825268에 따라 자금을 지원받는 LEDGER 프로젝트 프레임워크 내에서 유럽 연합의 Horizon 2020 연구 및 혁신 프로그램으로부터 자금을 지원 받았습니다.
MIT