Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
Laravel模块中Vite资产加载指南_创想鸟

Laravel模块中Vite资产加载指南

laravel模块中vite资产加载指南

本文详细介绍了在Laravel应用,特别是Nwidart模块中,如何正确使用Vite加载JavaScript和CSS资源。针对直接链接导致404错误的问题,教程阐明了Vite的工作原理,并提供了通过`@vite` Blade指令引用模块内资源的正确方法,确保开发流程顺畅,避免资源加载失败。

理解Laravel与Vite的资产管理

在现代Laravel项目中,Vite已成为主流的资产打包工具,取代了传统的Laravel Mix。Vite通过其开发服务器提供极速的模块热更新(HMR),并在生产环境中生成优化的静态资产。然而,这种工作方式意味着传统的直接通过或asset()辅助函数引用资产的方式,在Vite开发模式下可能无法正确解析,尤其是在Laravel模块化结构中,因为Vite需要知道其入口点(entry points)才能正确地服务和打包这些文件。

当在Blade模板中直接引用Vite处理的资源时,例如http://127.0.0.1:8000/js/app.js,浏览器会尝试从Web服务器请求该路径。如果Vite开发服务器没有运行,或者Vite配置中没有正确指定该入口点,或者路径与Vite的实际输出不匹配,就会导致404 (Not Found)错误。

正确加载Vite处理的JavaScript和CSS

为了在Laravel Blade模板中正确加载由Vite处理的JavaScript和CSS文件,Laravel提供了一个专用的Blade指令:@vite。这个指令能够与Vite开发服务器或生产环境打包后的清单文件(manifest file)无缝协作,自动生成正确的资源链接。

1. 配置Vite入口点

首先,确保你的vite.config.js文件正确配置了所有需要由Vite处理的入口点。对于Nwidart模块中的资源,路径应相对于项目根目录,并指向模块内部的实际文件。

例如,对于一个位于Modules/Auth/Resources/assets/js/app.js的JavaScript文件和一个位于Modules/Auth/Resources/css/app.css的CSS文件,vite.config.js应配置如下:

import { defineConfig } from 'vite';import laravel from 'laravel-vite-plugin';export default defineConfig({    plugins: [        laravel({            input: [                'Modules/Auth/Resources/css/app.css',                'Modules/Auth/Resources/assets/js/app.js'            ],            refresh: true,        }),    ],});

在上述配置中,input数组明确告诉Vite哪些文件是它的入口点。Vite会根据这些入口点来构建其依赖图。

2. 在Blade模板中使用@vite指令

一旦vite.config.js配置完成,你就可以在Blade模板中使用@vite指令来引用这些资源。@vite指令接受一个字符串或一个数组作为参数,参数值应与vite.config.js中input数组里的路径完全匹配。

加载单个JavaScript文件:

如果你只需要加载模块内的app.js文件,可以在Blade模板(例如Modules/Auth/Resources/views/layouts/app.blade.php)中这样使用:

            @vite('Modules/Auth/Resources/assets/js/app.js')

同时加载多个JavaScript和CSS文件:

如果你需要同时加载模块内的CSS文件和JavaScript文件,可以将它们作为数组传递给@vite指令:

            应用标题        @vite(['Modules/Auth/Resources/css/app.css', 'Modules/Auth/Resources/assets/js/app.js'])    

使用@vite指令后,Laravel会根据当前环境(开发模式或生产模式)自动生成正确的和标签。在开发模式下,它会连接到Vite开发服务器;在生产模式下,它会读取Vite生成的manifest.json文件来获取打包后的静态文件路径。

注意事项与最佳实践

路径匹配: 传递给@vite指令的路径必须与vite.config.js中input数组里的路径精确匹配。任何微小的差异都可能导致资源加载失败。Vite开发服务器: 在开发环境中,务必运行Vite开发服务器(通常通过npm run dev命令),以便@vite指令能够找到并加载资源。生产环境构建: 在部署到生产环境之前,务必运行npm run build命令来生成Vite的生产优化版本资产和manifest.json文件。否则,@vite指令将无法找到打包后的文件。模块化路径: 对于Nwidart等模块化结构,始终使用相对于项目根目录的完整路径来引用模块内的资源,例如Modules/Auth/Resources/assets/js/app.js。避免混合引用: 尽量避免在同一个项目中混合使用Vite和传统的asset()函数来处理相同的资源类型,这可能导致混乱和不一致。文档查阅: 如果遇到问题,请查阅Laravel官方Vite文档,它提供了最权威和最新的指导。

总结

通过遵循上述步骤,特别是在Blade模板中正确使用@vite指令,并确保vite.config.js配置准确无误,可以有效地在Laravel应用,包括Nwidart模块中,加载和管理由Vite处理的JavaScript和CSS资源,从而避免常见的404错误,并充分利用Vite带来的开发效率优势。

以上就是Laravel模块中Vite资产加载指南的详细内容,更多请关注php中文网其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1533813.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
JavaScript二进制数据处理与ArrayBuffer
上一篇 2025年12月21日 01:04:23
JS实现动态表单验证逻辑_javascript技巧
下一篇 2025年12月21日 01:04:37

相关推荐

发表回复

登录后才能评论
关注微信