【问题标题】:How to I move my javascript resources into a local folder?如何将我的 javascript 资源移动到本地文件夹中?
【发布时间】:2016-01-03 00:38:28
【问题描述】:

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

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

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

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

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

如何将 public 文件夹中的所有 javascript 移动到我的模块名称文件夹中,以便里面的所有内容都在同一个文件夹中?

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

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

【问题讨论】:

    标签: php laravel laravel-4 laravel-5


    【解决方案1】:

    发布视图的好处是最终用户可以在他们想要/需要时选择修改视图。

    至于 javascript,将 javascript 包含在您的模块文件夹中是完全可以的,就像文档中提到的那样。关于它们的使用方式,您有 2 个选项。你可以选择发布它们并将它们移动到公共文件夹中,或者如果你使用 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 文件夹的位置,因为一些用户选择重命名它文件夹到他们的具体配置。

    【讨论】:

    • 但是即使视图没有发布,用户是否仍然可以选择编辑视图?我仍然不清楚为什么它是有益的。关于 JS,文档正在展示如何发布它们,但我不确定我是否错过了如何告诉 laravel 是资产的位置。
    • 他们做和不做。虽然是的,但您可以在 /vendor 文件夹下编辑内容,但一旦安装或更新,您对那里的任何内容所做的所有更改都会被覆盖。通过将视图“发布”到他们自己的代码中,他们就可以控制应用哪些更新,并且如果他们进行了修改,他们可以手动更新他们的视图,其中包含可能需要应用的任何更改。我已经更新了我的答案,以解决您对 js 的疑问。
    • 谢谢。从现在开始,感谢使更多。对于您发布的代码,我也可以使用相同的代码复制文件夹而不是文件?
    • 是的,您也可以发布整个文件夹,只需从路径中省略文件即可。例如__DIR__ . '/path/to/folder' => public_path('vendor/my-package')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 2016-05-07
    • 1970-01-01
    相关资源
    最近更新 更多