在开发环境中是否可以使用 https 运行 SvelteKit 应用程序?\n我尝试运行
\nnpm run dev -- --https \nRun Code Online (Sandbox Code Playgroud)\nvite启动服务器成功:
\nVITE v3.0.2 ready in 359 ms\n\n \xe2\x9e\x9c Local: https://localhost:5173/\n \xe2\x9e\x9c Network: [...] \nRun Code Online (Sandbox Code Playgroud)\n但我无法连接到 https://localhost:5173\nchrome 说:ERR_SSL_VERSION_OR_CIPHER_MISMATCH
\n我还尝试编辑 vite.config.js 添加我的证书:
\nhttps: {\n key: readFileSync( `${__dirname}/../server/key.pem`),\n cert: readFileSync(`${__dirname}/../server/cert.pem`),\n}\nRun Code Online (Sandbox Code Playgroud)\n我还尝试在这篇文章之后使用 mkcert() :
\n\n但它会导致同样的错误
\n然后我尝试使用 mkcert 作为插件:
\nconst config = {\n \n server: { \n https: true\n },\n\n plugins: [sveltekit(), mkcert()],\n\n}; \nRun Code Online (Sandbox Code Playgroud)\n这次,在第一次加载时,它似乎可以工作,但是使用 SvelteKit goto() 加载其他页面会导致以下不同的错误:
\nTypeError [ERR_HTTP2_INVALID_CONNECTION_HEADERS]: HTTP/1 Connection specific headers are forbidden: "keep-alive"\nRun Code Online (Sandbox Code Playgroud)\n
Max*_*ess 12
openssl在这里,为了简单起见,我建议您使用 mkcert,但您也可以使用...生成证书
brew install mkcert\nRun Code Online (Sandbox Code Playgroud)\n> mkcert -install\nCreated a new local CA \nThe local CA is now installed in the system trust store! \xe2\x9a\xa1\xef\xb8\x8f\nThe local CA is now installed in the Firefox trust store (requires browser restart)! \nRun Code Online (Sandbox Code Playgroud)\nmkcertmkdir your_project/cert\ncd your_project/cert\nmkcert -key-file key.pem -cert-file cert.pem localhost\nRun Code Online (Sandbox Code Playgroud)\nvite.config.js以包含您的证书文件import { sveltekit } from \'@sveltejs/kit/vite\';\nimport { defineConfig } from \'vite\';\nimport fs from \'fs\';\n\nexport default defineConfig({\n plugins: [sveltekit()],\n server: {\n https: {\n key: fs.readFileSync(`${__dirname}/cert/key.pem`),\n cert: fs.readFileSync(`${__dirname}/cert/cert.pem`)\n }\n }\n});\nRun Code Online (Sandbox Code Playgroud)\nimport { sveltekit } from \'@sveltejs/kit/vite\';\nimport { defineConfig } from \'vite\';\nimport fs from \'fs\';\n\nexport default defineConfig({\n plugins: [sveltekit()],\n server: {\n https: {\n key: fs.readFileSync(`${__dirname}/../cert/key.pem`),\n cert: fs.readFileSync(`${__dirname}/../cert/cert.pem`)\n },\n proxy: {}\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n那么你应该运行并在终端中pnpm run dev查看。Local: https://localhost:5173/
我注意到在 vite.config.js 中添加: proxy: {} 解决了这个问题,但我没有完全理解为什么以及这个选择的后果
const config = {
server: {
https: true,
proxy: {} <==
},
plugins: [sveltekit(), mkcert()],
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6354 次 |
| 最近记录: |