Laravel 5 如何从';资源';文件夹(Laravel 5.5)

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方法。

我使用以下代码包含我的js文件:

Meta::addJs('admin_js','/resources/assets/admin_js/admin_app.js');
该文件存在,但在控制台中我看到状态404

如果我将文件移动到“公用”文件夹,则一切正常。但是我希望这个文件存储在“资源”目录中

  • 您必须将js文件移动到
    public
    或存储到
    storage
    并创建符号链接
  • 或者您需要将
    资源
    目录创建符号链接到
    公共
    目录(不建议这样做)

  • 您需要使用Laravel mix中最推荐和最有效的Laravel方法。请使用下面的链接阅读有关laravel mix a解决方案的信息


  • 它将允许您将您的
    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试运行生产