Laravel 5 如何从';资源';文件夹(Laravel 5.5)
我使用以下代码包含我的js文件:Laravel 5 如何从';资源';文件夹(Laravel 5.5),laravel-5,Laravel 5,我使用以下代码包含我的js文件: Meta::addJs('admin_js','/resources/assets/admin_js/admin_app.js'); 该文件存在,但在控制台中我看到状态404 如果我将文件移动到“公用”文件夹,则一切正常。但是我希望这个文件存储在“资源”目录中 您必须将js文件移动到public或存储到storage并创建符号链接 或者您需要将资源目录创建符号链接到公共目录(不建议这样做) 您需要使用Laravel mix中最推荐和最有效的Laravel方法。
Meta::addJs('admin_js','/resources/assets/admin_js/admin_app.js');
该文件存在,但在控制台中我看到状态404
如果我将文件移动到“公用”文件夹,则一切正常。但是我希望这个文件存储在“资源”目录中
public
或存储到storage
并创建符号链接资源
目录创建符号链接到公共
目录(不建议这样做)它将允许您将您的
js
资产放入resources
目录,并在public
中生成压缩的js文件,安装程序将使用该文件。我不知道我是否迟到了,但当我需要从视图文件中的目录和子目录加载js文件时,我这样做了,它对我来说非常有效。
顺便说一句,我使用的是laravel 5.7
首先,我编写了一个函数,用这个函数搜索任何给定目录中的任何文件
/**
*搜索文件并返回完整路径。
*
*@param字符串$pattern
*@return数组
*/
函数rglob($pattern,$flags=0){
$files=glob($pattern,$flags);
foreach(glob(dirname($pattern)。“/*”,glob_ONLYDIR | glob_NOSORT)作为$dir){
$files=array_merge($files,rglob($dir.'/'.basename($pattern),$flags));
}
返回$files;
}
上面将返回我的“resources/view”目录中每个“.js”文件的完整路径。
然后我调用了上面的函数,将每个js的内容复制到一个js文件(new.js),我使用下面的函数在我的public/js中创建了这个文件
/**
*将js文件从每个视图子目录加载到公共js中。
*
*@返回无效
*/
函数加载_js_函数(){
//调用上一个函数,返回视图目录中的所有js文件
$files=rglob(资源路径('views')。/*/*.js');
foreach($files作为$file){
复制($file,base_path('public/js/new.js'));
}
}
在此之后,在加载public/js/new.js之后,我立即在我的主刀片布局中调用了load_js_函数()(在这里我加载了我所有的css、js等),您可以在下面看到
{{load_js_function()}}
这些解决方案在您更新原始文件的内容时公开更新该文件。
如果它对您有效,请投票,如果您在实现此功能时遇到问题,请发表评论,我将很高兴为您提供更多信息。
为LARAVEL 7.0的更新干杯: 将普通JavaScript文件添加到“资源”中:
resources/js
中创建文件(本例中称为“file.js”)webpack.mix.js
文件(在底部)mix.js('resources/js/file.js','public/js')代码>
npm试运行生产