如何在cPanel子文件夹中部署Astro项目?
在cPanel子文件夹部署Astro静态网站解决public文件不识别问题
- 先调整Astro的构建配置,默认构建的资源路径是根目录,部署到子文件夹会出现路径错误。修改项目根目录的
astro.config.mjs,加上site和base参数:
import { defineConfig } from 'astro/config'; export default defineConfig({ site: 'https://你的域名.com', // 替换成你的实际域名 base: '/你的子文件夹名称', // 比如要部署到/blog就写'/blog' });
这个配置会让Astro在构建时给所有资源路径加上子文件夹前缀,确保cPanel能正确找到public里的文件。
重新构建项目:在本地终端运行
npm run build,生成的dist文件夹里就是适配子路径的静态文件。上传到cPanel:登录cPanel打开文件管理器,在主域名根目录(一般是
public_html)创建对应的子文件夹,然后把dist文件夹里的所有内容(包括public打包后的资源)上传到这个子文件夹中。注意不要直接上传dist文件夹,要传里面的文件。若仍有资源加载失败,在子文件夹里新建
.htaccess文件,添加以下规则:
RewriteEngine On RewriteBase /你的子文件夹名称/ RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /你的子文件夹名称/index.html [L]
这一步是确保Astro的路由和静态资源都能被正确解析。
- 最后访问
https://你的域名.com/子文件夹名称,检查public里的图片、字体等资源是否正常加载。
内容的提问来源于stack exchange,提问作者Davv
相关产品推荐
相关产品推荐

