php 편집기 Baicao는 오늘 흥미로운 기술을 소개합니다. 즉, golang 바이너리 파일에 SvelteKit을 포함하는 것입니다. 프론트엔드 기술의 지속적인 개발로 인해 점점 더 많은 프레임워크와 도구가 등장했습니다. 새로운 프레임워크인 SvelteKit은 컴파일 타임에 애플리케이션을 구축하여 더 빠른 로딩 속도와 더 높은 성능을 제공합니다. 이 기사에서는 보다 편리한 배포 및 배포를 위해 SvelteKit 애플리케이션을 golang 바이너리에 포함하는 방법을 보여줍니다.
나는 sveltekit 웹사이트를 포함하기 위해 단일 바이너리를 제공하기 위해 embedd를 사용하려고 합니다. 나는 chi를 라우터로 사용합니다. 그러나 나는 그것을 작동시킬 수 없습니다. 아래 옵션 중 하나가 표시됩니다. 내가 아는 한 all:
选项可确保包含以 _
为前缀的文件。我还尝试了主v1中stripprefix
方法的变体:/uibuild/
或uibuild/
etc...
누가 좀 밝혀줄 수 있나요?
샘플 저장소
간소화된 구성:
으아악
main.go v1:
이렇게 하면 오류 3이 발생합니다.
으아악main.go v2:
이렇게 하면 오류 2가 발생합니다.
으아악파일 구조:
import preprocess from "svelte-preprocess"; import adapter from "@sveltejs/adapter-static"; /** @type {import('@sveltejs/kit').config} */ const config = { kit: { adapter: adapter({ pages: "./../server/uibuild", assets: "./../server/uibuild", fallback: "index.html", }), }, preprocess: [ preprocess({ postcss: true, }), ], }; export default config;
"main.go v2"가 문자 하나만 추가할 수 있다는 점이 실망스럽습니다. 귀하는 다음을 사용하고 있습니다:
r.handle("/", http.fileserver(http.fs(static)))
문서에서:
func (mx *mux) 句柄(模式字符串,处理程序 http.handler)
각 라우팅 방법은 URL 패턴과 핸들러 체인을 허용합니다. URL 패턴은 명명된 매개변수(예: /users/{userid})와 와일드카드(예: /admin/)를 지원합니다. chi.urlparam(r, "userid")(명명된 매개변수의 경우) 및 chi.urlparam(r, "")(와일드카드 매개변수의 경우)을 호출하여 런타임 시 URL 매개변수를 얻을 수 있습니다.
따라서 "/"를 "패턴"으로 전달합니다. 이는 일치하지만 /
다음을 사용하여 수정할 수는 없습니다.
으아악
로 리디렉션하는 것입니다. 그렇지 않으면 사용자가 해당 경로로 페이지를 북마크에 추가하면 페이지가 로드되지 않습니다. 자세한 내용은 /
이 답변을 참조하세요.
링크된 답변<a href="/about">about</a>
添加到 ui/src/routes/+page.svelte
的末尾并重建(两者都是 svelte 和然后去应用程序)。然后,您将能够导航到 about
页面(首先加载主页,然后单击“关于”)。这是由客户端路由器处理的(因此您可能不会看到任何对 go 服务器的请求)。有关如何在直接访问页面(例如 /about
에서 추가 시 작동하게 만드는 방법에 대한 정보를 확인하세요).
p>다음은 내장 파일 시스템에서 필요한 비트를 제공하고 다른 모든 요청에 대해 기본
을 반환하는 빠른(다소 해킹된) 예입니다(Svelte 라우터가 필수 페이지를 표시할 수 있도록). index.html
으아악
위 내용은 Golang 바이너리에 sveltekit 삽입의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!