You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Jetstream+Livewire部署Namecheap遇静态资源404问题求助

解决方案

1. 修正Vite配置路径

你的静态文件实际存放在public/asset/build目录,但Vite生成的资源URL是/build/assets/...,路径不匹配。修改vite.config.js的base参数:

export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
    ],
    base: '/asset/build/',
});

2. 确认环境变量配置

在.env文件中设置正确的域名,确保Vite生成的资源URL基于实际域名:

APP_URL=https://yoursite.loc

3. 重新构建静态资源

执行以下命令重新生成带正确路径的静态文件和manifest:

npm run build

4. 恢复@vite指令的正确使用

不要手动替换为资源目录的直接引用,在布局文件中保留原生@vite指令,它会自动读取manifest.json中的正确路径:

@vite(['resources/css/app.css', 'resources/js/app.js'])

5. 检查Web根目录与.htaccess配置

  • 确保Namecheap主机的Web根目录指向Laravel项目的public目录(若主机支持修改);若无法修改,可将public目录内容移至public_html,或在public_html中创建指向项目public/index.php的跳转文件。
  • 确保public(或public_html)下的.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]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

6. 验证文件权限

确保public/asset/build目录权限为755,目录内的CSS/JS文件权限为644,保证服务器能正常读取这些资源。

内容的提问来源于stack exchange,提问作者Alexandr Bogaciuc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 15:22:29