앱 플랫폼: 정적 NextJS 프로젝트 호스팅
App Platform은 이 기능을 사용하지 않지만(현재) 문제가 되지 않습니다. 해결할 수 있기 때문입니다!
NextJS 구성
next.config.js
폴더에 몇 가지 추가가 필요합니다.// next.config.js
module.exports = {
/**
* NextJS requires serverside components to do image optimization.
* Unfortunately, hosting via SSG/Static means you will miss out on
* this utility which will provide appropriately sized images for
* the devices users are accessing your app from.
*
* As a side note, you can write a custom image loader which
* reimplements this functionality but that is beyond the scope of
* this article.
*/
images: {
unoptimized: true,
},
/**
* Trailing slashes places the generated pages of a nextjs app
* within a folder.
*
* Eg. instead of having an `about.html` a `about/index.html` will
* be generated.
*
* This provides pretty urls, so instead of
* `your-app.com/about.html` you'll have `your-site.com/about`.
*
* This is optional.
*/
trailingSlash: true,
}
또한 앱을 생성하는 데 사용되는 빌드 명령을 업데이트해야 합니다. 이 작업은 몇 가지 다른 위치에서 수행할 수 있으며 내
package.json
에 추가하는 것을 선호합니다.{
// ...
"scripts": {
// .../
"build": "next build && next export -o build",
// ...
},
// ...
}
Note the
-o build
argument, this will put your static site in abuild
directory. It's a good idea to add this to your.gitignore
.
앱 플랫폼 구성
DigitalOcean Apps 클라우드 대시보드에서 마법사를 사용하여 앱을 생성합니다. 예를 들어 위에서 적절한 빌드 명령을 사용했는지 확인하십시오.
npm run build
catchall
에서 Settings > <your_component> > Custom Pages
를 설정해야 합니다. 이 값을 index.html
로 설정합니다.일부 NextJS 앱에는
NEXT_PUBLIC_SITE_URL
환경 변수가 필요합니다. 앱 플랫폼을 사용하면 바인드 변수를 사용하여 다음과 같은 정적 사이트 구성 요소에 대한 환경 변수를 생성할 수 있습니다.NEXT_PUBLIC_SITE_URL=${APP_URL}
Note:
${APP_URL}
will be auto-filled with the apps primary URL whether that is a custom URL or the providedsome-value.ondigitalocean.app
domain.
마지막으로 위의 동일한 구성 요소 설정에서 출력 디렉터리가 빌드 디렉터리로 설정되어 있는지 확인합니다. 위의
-o build
예를 사용한 경우 이 디렉토리는 build
입니다.앱 플랫폼 앱은
app spec
를 통해 설명됩니다. 다음은 NextJS SSG 프로젝트용으로 구성된 예제 앱 사양입니다(이 사이트 😉).domains:
- domain: jonfriesen.ca
type: PRIMARY
zone: jonfriesen.ca
name: portfolio
region: tor
static_sites:
- build_command: npm run build
catchall_document: index.html
environment_slug: node-js
envs:
- key: NEXT_PUBLIC_SITE_URL
scope: BUILD_TIME
value: ${APP_URL}
github:
branch: main
deploy_on_push: true
repo: jonfriesen/jonfriesen.ca
name: portfolio
output_dir: build
routes:
- path: /
source_dir: /
Reference
이 문제에 관하여(앱 플랫폼: 정적 NextJS 프로젝트 호스팅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jonfriesen/app-platform-hosting-static-nextjs-projects-30d5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)