最近在用Laravel这个PHP框架搭网站,大致了解这个框架的目录结构之后感觉学到了不少东西。


首先安装好包管理器:

PHP部分当然用composer,安装在全局目录下方便一点。

前端部分,我没有选择npm而是使用更“先进”的yarn。


可以打开 Laravel的官方文档 以供参考。

我写这文章是为了理清楚自己的开发思路,以前我直接把整个网站项目从服务器复制到自己的电脑上进行编写,但是这样需要复制的东西实在太多了,大部分是我根本就不会去动第三方的库。所以我得搞清楚如何做能够只需要下载最少的文件,就能够保持我电脑与服务器的文件的同步。这样也方便在本地开服务器进行代码测试,而不用每次都得同步本地修改到服务器,再从服务器测试代码运行结果。

大致的思路就是,只同步包管理器的配置文件,再在本地通过包管理器读取这些配置文件下载与服务器相同的第三方库。

1. PHP的依赖

安装好Larvel之后,根目录下会有composer用于存放第三方库的文件夹 vendor,这个文件夹里的东西全部可以加进.gitignore,事实上Laravel默认gitignore 也是这么做的。我们只需要在git加上composer.json就可以同步PHP所使用的库了。

这样从git pull下来的repo,只需要执行composer install就能获得与服务器上相同的库。

2. 前端项目的依赖

前端的库都会放在 Laravel 根目录下 node_modules 目录(以下简称nm)里,这个nm应该放在gitignore里,不同步到git,仅同步packages.json 及 yarn.lock(如果用yarn来替代npm的话)。

本地的repo里,只需要yarn install便能获得与服务器上相同的库。

3. 前端资源的存放

Laravel还有两个文件夹public及resources,本来我一直都是把css js以及其他资源文件比如图片直接放在public文件夹里的,但是似乎这么做是不妥的,特别是使用scss/sass以及Typescript这种需要编译才能生成实际浏览器使用的css/js的文件。

一种比较合理的做法是,将scss以及typescript放在resources里,转译出的最终文件放在public下。这样浏览器可以访问最终css/js文件,但是访问不到源文件。如果转译再minify的话这样做也很方便。总之就是将源文件剥离出public目录,防止用户访问。

转译之类的操作可以使用webpack,同时还可以实现更多高级特性比如模块化。

Laravel 网站项目目录结构规划的更多相关文章

  1. Laravel项目目录结构说明

    Laravel项目目录结构说明: |- vendor 目录包含你的 Composer 依赖模块及laravel框架. |- bootstrap 目录包含几个框架启动跟自动加载配置的文件. |- app ...

  2. 网站项目后台的目录命名为admin后,网页莫名其妙的变样了

    这是我的第一篇博客文章,与其说是分享经验,倒不如说是求助 最近因为要完成一个课程设计,在拿一个现成的项目过来改,要用到select下拉菜单,可是发觉怎么我的这个下拉菜单怎么变样了 刚开始它是这样的 感 ...

  3. .Net修改网站项目调试时的虚拟目录(未验证)

    有些项目需要在IIS发布的时候,将网站发布到虚拟目录,为了保持调试和发布的路径同一,一般会修改VS调试的虚拟目录 一.Web应用程序 Web应用程序的修改方式非常简单,在解决方案资源管理器->项 ...

  4. .Net修改网站项目调试时的虚拟目录

    点中网站项目按F4,虚拟目录那个栏目全部删掉!

  5. 推荐 Laravel API 项目必须使用的 8 个扩展包

    如今在现代网络开发中,比较流行的模式是基于 API 开发,可以通过手机或网站来创建服务. Laravel 是创建基于 API 的项目的最佳框架之一,它为世界各地的大型社区提供了高速开发. Larave ...

  6. Laravel大型项目系列教程(三)之发表文章

    Laravel大型项目系列教程(三)之发表文章 一.前言 上一节教程中完成了用户管理,这节教程将大概完成发表Markdown格式文章并展示的功能. 二.Let's go 1.数据库迁移 文章模块中我们 ...

  7. Laravel大型项目系列教程(一)

    Laravel大型项目系列教程(一) 一.课程概述 1.课程介绍 本教程将使用Laravel完成一个多用户的博客系统,大概会包含如下内容: 路由管理. 用户管理,如用户注册.修改信息.锁定用户等. 文 ...

  8. vs2012中程序集生成无法自动在网站Bin目录下生成Dll文件?(已解决!)

    最近,突然发现生成程序集后,网站bin目录下dll没有更新,也没有自动生成dll文件,通过近半个小时的摸索和实验,找到了解决方法: 1.右键网站,不是项目,选择[属性页],在左侧[引用]中如果没有,就 ...

  9. j2ee网站项目首页如何直接使用action

    之前做过一些网站项目,大多数都是首页就是登录,直接进入首页的不多,也就没有注意到,今天刚好注意到了就来记一下.也算是一个小技巧 <welcome-file>index.jsp</we ...

随机推荐

  1. Codeforces Round #271 (Div. 2) D. Flowers (递推 预处理)

    We saw the little game Marmot made for Mole's lunch. Now it's Marmot's dinner time and, as we all kn ...

  2. Linux bash: scp: command not found的问题记录

    ,总结 scp成功,须要两个server都安装了scp服务才行.

  3. OCP-1Z0-051-题目解析-第21题

    21. Examine the description of the EMP_DETAILS table given below:  name               NULL           ...

  4. Mac OS 10.10.3下Apache + mod_wsgi配置【一】

    [一] 首先,MAC是自带Apache的,在/private/etc/apache2路径下,能够使用apachectl -v查看版本号.我的版本号例如以下: Server version: Apach ...

  5. easyUI datagrid 时间格式化

    从后台传过来的数据,其中含有日期字段,那么在前端的easyUI这里显示的话,会显得比较怪异,一大串,中间是个T,后面一大堆零,不知道是什么意思. 看来要进行格式化. 问题是,在哪里格式化? 如果在后端 ...

  6. 2016/1/12 String 笔记整理

    String  简介                        文件名 Teststring 有实例 String类 即字符串类型,并不是Java的基本数据类型,但可以像基本数据类型一样使用,用双 ...

  7. 利用游标返回结果集的的例子(Oracle 存储过程)JAVA调用方法和.NET调用方法

    在sqlplus中建立如下的内容: 1.程序包 SQL> create or replace package types  2  as  3      type cursorType is re ...

  8. [置顶] Silverlight之控件应用总结(一)(3)

    [置顶] Silverlight之控件应用总结(一)(3) 分类: 技术2012-04-02 20:35 2442人阅读 评论(1) 收藏 举报 silverlightradiobuttondatat ...

  9. 分享一个全开源的ASP.NET快速开发平台,能快速开发OA CRM ERP 等系统

    bingo炸了 2017/3/30 16:28:14 阅读(870) 评论(0) 公司业务量比较大,接了很多项目,为了缩短开发周期老板让我牵头搭建了一个快速开发平台. 我们主要的业务是做OA.CRM. ...

  10. Oracle高水位线

    Oracle高水位线 https://blog.csdn.net/jx_jy/article/details/50607790 Oracle高水位线的概念 Oracle里面的对象放到存储级别都称为se ...