如何将我的javascript资源移动到本地文件夹?

时间:2016-01-03 00:38:29

标签: php laravel laravel-4 laravel-5

我使用 laravel 5.2 编写了一个小应用程序。我试图将所有代码保存在app文件夹之外的一个文件夹中。

我创建了一个名为modules的文件夹。在modules文件夹中,我有一个供应商名称的文件夹。然后,在vendor文件夹中,我有一个包含我的代码的模块文件夹。

这是一个简单的文件夹结构

app modules/vendor name/module name/...

我设法将控制器,视图和路径文件移动到模块名称文件夹中。

如何将位于公共文件夹中的所有javascripts移动到我的模块名称文件夹中,以便内部的所有内容都在同一个文件夹中?

此外,我对模块文件夹中的视图有很多疑问。使用$this->publishes()将视图发布到laravel附带的resources / views文件夹是否是更好的做法?如果有,有什么好处?

https://laravel.com/docs/5.2/packages

1 个答案:

答案 0 :(得分:1)

发布视图的好处是最终用户,如果他们想要/需要,那么可以选择修改视图。

至于javascript,它完全没有像文档提到的那样在你的模块文件夹中包含javascript。关于如何使用它们,您有两种选择。您可以选择发布将它们移动到公共文件夹中,也可以在构建过程中包含它们,如果您使用elixir / gulp等。请参阅https://laravel.com/docs/5.2/packages#public-assets

编辑:

要发布javascript文件等资源(理论上它们可以是任何图像,css等),请使用包服务提供商中的以下内容。

public function boot()
{
    $this->publishes([
        __DIR__ . '/path/to/script.js' => public_path('vendor/my-package'),
        __DIR___ . '/path/to/another.js' => public_path('vendor/my-package'),
    ]);
}

以上内容会将script.jsanother.js移动到/public/vendor/my-package文件夹中。只是为了解释__DIR__是一个PHP'魔术'常量,它给出了当前php文件所在的目录,public_path()是一个Laravel函数,它为我们提供了/public文件夹的位置某些用户选择将此文件夹重命名为其特定配置。