我最近上传了我的Laravel项目到一个主机。问题是我在public/images
文件夹中的图像加载正确,但我在public/build/assets
文件夹中的js和css文件找不到。我真的很困惑,下面的行
@vite(['resources/css/app.css', 'resources/js/app.js'])
将在视图中生成这些线:
<link rel="preload" as="style" href="https://sample.com/build/assets/app-174f79b2.css">
<link rel="modulepreload" href="https://sample.com/build/assets/app-02908d50.js">
<link rel="stylesheet" href="https://sample.com/build/assets/app-174f79b2.css">
<script type="module" src="https://sample.com/build/assets/app-02908d50.js"></script>
但是当我把链接复制到浏览器上,并且在build
之前添加public
时,它们就在那里了。我认为是.htaccess
文件有问题,但是我的公共文件夹中的index.php没有这个问题,它工作正常。公共文件夹下的我的图像文件夹也工作正常,我的图像被正确加载。
下面是我的.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^public/
RewriteRule ^(.*)$ public/$1 [L,QSA]
</IfModule>
更奇怪的是我的public/images
文件夹中的.svg
文件也有加载问题,但是.webp
文件没有问题!
1条答案
按热度按时间a0zr77ik1#
如文件所述
有两种方法可以运行Vite。您可以通过
dev
命令运行开发服务器,这在本地开发时很有用。开发服务器会自动检测文件的更改,并立即反映在任何打开的浏览器窗口中。或者,运行build命令将对应用程序的资产进行版本控制和捆绑,并使它们准备好部署到生产环境中
所以...
在开发模式下,Laravel Vite不会构建资源并将其发布到您的公用文件夹!它会打开另一个端口并自行提供这些资源。
如果要发布资源,应针对生产运行:
在文档根不是公共的情况下访问laravel
您应该将
Documentroot
设置为public
目录。但是如果你不想在
.htaccess
中的laravel根目录下,也就是你的文档根目录下这样写: