Laravel 5.0 文件夹结构:public 与资源

Laravel 5.0 folder structure: public vs. resources

在Laravel 4.2中,我使用public文件夹来存储我所有的CSS、JS、图片和上传。目前,有一个新的 resources 文件夹,其中包含 assets 文件夹,其中包含 Laravel 5.0 安装:

/public
/resources/assets

这让我感到困惑,尤其是因为 resources 也包含 views

通过 Laravel 的升级指南(4.2 到 5.0):

Copy your application's public assets from your 4.2 application's public directory to your new application's public directory.

还有:

You may move your Sass, Less, or CoffeeScript to any location you wish. The resources/assets directory could be a good default location.

问题:publicresources之间的实际区别是什么Laravel 5.0 文件夹结构中的文件夹?

这里最大的区别是 public 中的所有内容都是......好吧 publicresources 不是。放什么放哪里由你决定。

通常,浏览器需要直接访问的所有内容都位于 public 目录中。这通常意味着:JavaScript、CSS、图像,也许是一些视频或音频文件。

resources/assets 用于必须首先编译或缩小的内容。所以你会在 resources/assets 中有一些 LESS 或 SASS 文件,它们会被编译并缩小成一个 CSS 文件,放在 public 目录中。

Laravel elixir,默认使用/resources/assets文件夹作为编译、压缩等脚本的基目录。所以你应该把你的原始 sass、less、coffeescript、js 和 css 文件放在那里让 elixir 完成它的工作。 public 文件夹是存放您正在使用的文件的好地方。

以这种方式工作时,您可以用 gulp 更轻松地连接和缩小所有文件。只需将它们包含在您的 public 文件夹中。

您可以将它们视为用于开发和生产的独立文件夹。在资源中,您拥有所有不会交付生产的开发文件(SASS、Coffeescript、Babel、Jade 等)。但是当它们被编译(或通过类似 Gulp 的管道传输)时,您可以将它们配置为输出到 public,生产文件夹。

在 laravel public 文件夹中最适合图像、CSS 和 Javascript。在 public 文件夹中,我们可以使用上传的图片、视频、文本文件等。