我正在将Laravel 9项目部署到共享主机(无法将ssh部署到服务器中,因此我无法在服务器中npm运行build),我收到了以下错误:
在以下位置未找到Vite清单:laravel_project/public/build/manifest.json
我正在使用FileZilla将项目上传到CPanel,我将public文件夹上传到public_html并配置index.php文件。
在上传项目之前,我在localhost上本地运行npm运行build,一切正常。
有人能解决这个问题吗?
我尝试更改APP_ENV=生产,但没有成功。
所以我找到了一个解决方案:
-
将我的所有本地laravel文件和文件夹,包括公共文件夹(当然,在本地运行composer install和npm run build之后)放在服务器的public_html目录中
-
现在,在public_html目录中的服务器内,将public文件夹的两个文件.htaccess和index.php向上移动一级,以便index.php文件和.htaccess文件直接位于ublic_html目录内(这样,您就不必在url中包含/public,而是在访问网站时直接访问应用程序)
-
配置您刚刚从public移动到public_html的index.php的内容,使其链接正确指向public _htmlTR内的应用程序内容
例如:
__DIR__.'/../storage/framework/maintenance.php'
成为
__DIR__.'/storage/framework/maintenance.php'
因此/。。已删除
其他链接也像:
__DIR__.'/../vendor/autoload.php'
成为
__DIR__.'/vendor/autoload.php'
和
__DIR__.'/../bootstrap/app.php'
成为
__DIR__.'/bootstrap/app.php'
我遇到了完全相同的问题。帮助我的是,我不仅向public_html添加了公共内容,而且还向生产服务器添加了具有相同内容的公共文件夹。因此,它在public_html和public中有重复的文件,但我认为这是一个比将整个项目添加到public_html文件夹更好的解决方案。不过,我想为这个问题找到一个更好的解决方案。
我通过在;public_html";文件夹和";"公共";文件夹,通过SSH使用以下命令:;ln-s/path/to/folder/public_html/path/to_folder/public";。这样,我的两个文件夹总是指向相同的资源。