Laravel 网站项目目录结构规划
最近在用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 网站项目目录结构规划的更多相关文章
- Laravel项目目录结构说明
Laravel项目目录结构说明: |- vendor 目录包含你的 Composer 依赖模块及laravel框架. |- bootstrap 目录包含几个框架启动跟自动加载配置的文件. |- app ...
- 网站项目后台的目录命名为admin后,网页莫名其妙的变样了
这是我的第一篇博客文章,与其说是分享经验,倒不如说是求助 最近因为要完成一个课程设计,在拿一个现成的项目过来改,要用到select下拉菜单,可是发觉怎么我的这个下拉菜单怎么变样了 刚开始它是这样的 感 ...
- .Net修改网站项目调试时的虚拟目录(未验证)
有些项目需要在IIS发布的时候,将网站发布到虚拟目录,为了保持调试和发布的路径同一,一般会修改VS调试的虚拟目录 一.Web应用程序 Web应用程序的修改方式非常简单,在解决方案资源管理器->项 ...
- .Net修改网站项目调试时的虚拟目录
点中网站项目按F4,虚拟目录那个栏目全部删掉!
- 推荐 Laravel API 项目必须使用的 8 个扩展包
如今在现代网络开发中,比较流行的模式是基于 API 开发,可以通过手机或网站来创建服务. Laravel 是创建基于 API 的项目的最佳框架之一,它为世界各地的大型社区提供了高速开发. Larave ...
- Laravel大型项目系列教程(三)之发表文章
Laravel大型项目系列教程(三)之发表文章 一.前言 上一节教程中完成了用户管理,这节教程将大概完成发表Markdown格式文章并展示的功能. 二.Let's go 1.数据库迁移 文章模块中我们 ...
- Laravel大型项目系列教程(一)
Laravel大型项目系列教程(一) 一.课程概述 1.课程介绍 本教程将使用Laravel完成一个多用户的博客系统,大概会包含如下内容: 路由管理. 用户管理,如用户注册.修改信息.锁定用户等. 文 ...
- vs2012中程序集生成无法自动在网站Bin目录下生成Dll文件?(已解决!)
最近,突然发现生成程序集后,网站bin目录下dll没有更新,也没有自动生成dll文件,通过近半个小时的摸索和实验,找到了解决方法: 1.右键网站,不是项目,选择[属性页],在左侧[引用]中如果没有,就 ...
- j2ee网站项目首页如何直接使用action
之前做过一些网站项目,大多数都是首页就是登录,直接进入首页的不多,也就没有注意到,今天刚好注意到了就来记一下.也算是一个小技巧 <welcome-file>index.jsp</we ...
随机推荐
- apache ab 測试 apr_socket_connect(): 因为目标机器积极拒绝 无法连接
遇到这样的情况通常是你开的并行数量太多了... 比如:ab -c 1000 -n 10000 http://localhost/index.html 如此大的请求就会挂掉,只是还是有补救措施的,能够通 ...
- AutoCAD如何添加网络打印机 添加公司打印机
1 请确认你已经连接了这台网络打印机,你没法打AutoCAD图纸,但是应该能打Word文档.能打Word文档说明你驱动装好了,通信也没问题,只是AutoCAD的配置不对导致的. 2 点击打印,打印 ...
- Office 针式打印机如何插入色带
1 打开盖子,用手按住我按的地方 2 向下翻起 3 翻转完成 4 装入色带(有旋钮的那面朝向自己,装入之后,按箭头方向旋转以拉紧色带,下图圈出来的2是色带导向架) 5 把色带绷直,如下 ...
- 【LeetCode刷题Java版】Reverse Words in a String
Given an input string, reverse the string word by word. For example, Given s = "the sky is blue ...
- [DLX反复覆盖] poj 1084 Square Destroyer
题意: n*n的矩形阵(n<=5),由2*n*(n+1)根火柴构成,那么当中会有非常多诸如边长为1,为2...为n的正方形,如今能够拿走一些火柴,那么就会有一些正方形被破坏掉. 求在已经拿走一些 ...
- 【bzoj1507】[NOI2003]Editor
第二次写rope了 rope大法好!!! #include<algorithm> #include<iostream> #include<ext/rope> #in ...
- 【Dairy】2016.10.24 - made 嘲讽垃圾
//这个还找不到我的博客,但在看到原文 //这个还找不到我的博客,但在看到原文 //这个还找不到我的博客,但在看到原文 //这个还在我前面,访问多 一波嘲讽,woc 今天百度一下文章,发现有一篇和我一 ...
- 英式英语 vs 美式英语
0. 常见不同 日期的表达: 美国:月日年: 英国:日月年: 1. 发音 schedule,美 ['skɛdʒul],英 [ˈʃɛdjuːl] pecan,山核桃,英 ['piːk(ə)n;],美 [ ...
- 【bug】QUOTA_EXCEEDED_ERR: DOM Exception 22
iOS的Safari在无痕模式下,sessionStorage操作产生异常,报错QUOTA_EXCEEDED_ERR: DOM Exception 22. html5 localStorage err ...
- go语言---slice
go语言---slice https://blog.csdn.net/cyk2396/article/details/78893420 一.数组切片的使用: //1.基于数组创建数组切片 var ar ...