Laravel Jetstream部署至Cpanel后CSS/JS路径加载失败求助
解决Laravel Jetstream部署到Cpanel后资源加载失败问题
可行解决方案:
修正资源路径配置
打开项目根目录的.env文件,将APP_URL设置为你的实际访问地址,例如:APP_URL=https://你的域名.com/pro1/admin若问题仍存在,添加
ASSET_URL参数明确资源根路径:ASSET_URL=https://你的域名.com/pro1/admin修改后执行命令清除配置缓存:
php artisan config:cache重新编译并上传前端资源
- 在本地环境运行前端编译命令:
npm install npm run build - 将本地
public/build目录下的所有文件,同步到服务器的public_html/pro1/admin/build目录中。
- 在本地环境运行前端编译命令:
调整服务器目录结构
Laravel的public目录是Web访问入口,正确部署方式如下:- 将Laravel核心文件(
app、config、vendor等)放在public_html/pro1目录下(而非public_html/pro1/admin) - 将
public目录内的所有文件移动到public_html/pro1/admin - 修改
public_html/pro1/admin/index.php中的路径,指向核心文件目录:require __DIR__.'/../vendor/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php';
- 将Laravel核心文件(
检查.htaccess规则
确保public_html/pro1/admin下的.htaccess为Laravel默认配置,避免重写规则干扰资源路径:<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
内容的提问来源于stack exchange,提问作者Abhishek Chatterjee
相关产品推荐
相关产品推荐

