Laravel 5.0 文件夹结构:公共与资源

Posted

技术标签:

【中文标题】Laravel 5.0 文件夹结构:公共与资源【英文标题】:Laravel 5.0 folder structure: public vs. resources 【发布时间】:2015-04-14 07:12:23 【问题描述】:

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

/public/resources/assets

这让我很困惑,尤其是因为 resources 还包含 views

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

从 4.2 应用程序的 public 目录添加到您的新应用程序的公共目录。

还有:

您可以将您的 Sass、Less 或 CoffeeScript 移动到您想要的任何位置 希望。 resources/assets 目录可能是一个不错的默认位置。

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

【问题讨论】:

【参考方案1】:

这里最大的不同是public 中的所有内容都是...publicresources 不是。你把什么放在哪里取决于你。

通常,浏览器需要直接访问公共目录中的所有内容。这通常意味着:javascript、CSS、图像,可能还有一些视频或音频文件。

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

【讨论】:

【参考方案2】:

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

以这种方式工作时,您可以通过 gulp 和更少的工作来连接和缩小所有文件。只需从您的公共文件夹中包含它们。

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

在 laravel 公共文件夹中最适合 Image、CSS 和 Javascripts。在公共文件夹中,我们可以用于上传图片、视频、文本文件等。

【讨论】:

以上是关于Laravel 5.0 文件夹结构:公共与资源的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp 5.0 模块设计

THINKPHP 5.0目录结构

为啥我得到一个 404 到 laravel 5.7 公共子文件夹?

未找到服务提供者 Laravel 5.0

laravel 5.1路由直接到公共文件夹

如何重定向到laravel上的公共文件夹