我使用 laravel 5.2 编写了一个小应用程序。我试图将所有代码保存在app文件夹之外的一个文件夹中。
我创建了一个名为modules
的文件夹。在modules
文件夹中,我有一个供应商名称的文件夹。然后,在vendor文件夹中,我有一个包含我的代码的模块文件夹。
这是一个简单的文件夹结构
app modules/vendor name/module name/...
我设法将控制器,视图和路径文件移动到模块名称文件夹中。
如何将位于公共文件夹中的所有javascripts移动到我的模块名称文件夹中,以便内部的所有内容都在同一个文件夹中?
此外,我对模块文件夹中的视图有很多疑问。使用$this->publishes()
将视图发布到laravel附带的resources / views文件夹是否是更好的做法?如果有,有什么好处?
答案 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.js
和another.js
移动到/public/vendor/my-package
文件夹中。只是为了解释__DIR__
是一个PHP'魔术'常量,它给出了当前php文件所在的目录,public_path()
是一个Laravel函数,它为我们提供了/public
文件夹的位置某些用户选择将此文件夹重命名为其特定配置。