电商项目——前台门户系统

前台门户系统

门户系统面向的是用户,安全性很重要,而且搜索引擎对于单页应用并不友好。因此门户系统不再采用与后台系统类似的SPA(单页应用)。

前后端分离,不过前端的页面会使用独立的html,在每个页面中使用vue来做页面渲染。

静态资源

webpack打包多页应用配置比较繁琐,项目结构也相对复杂。

nuxt + vue + webpack 服务端渲染

创建工程

创建一个新的工程

导入静态资源

将资料中的taotao-portal解压,并复制到这个项目下

live-server

没有webpack,我们就无法使用webpack-dev-server运行这个项目,实现热部署。

所以,这里使用另外一种热部署方式:live-server,

简介

地址:https://www.npmjs.com/package/live-server

这是一款带有热加载功能的小型开发服务器。用它来展示你的HTML / JavaScript / CSS,但不能用于部署最终的网站。

安装和运行参数

安装,使用npm命令即可,这里建议全局安装,以后任意位置可用

npm install -g live-server

运行时,直接输入命令:

live-server

另外,你可以在运行命令后,跟上一些参数以配置:

  • --port=NUMBER - 选择要使用的端口,默认值:PORT env var或8080
  • --host=ADDRESS - 选择要绑定的主机地址,默认值:IP env var或0.0.0.0(“任意地址”)
  • --no-browser - 禁止自动Web浏览器启动
  • --browser=BROWSER - 指定使用浏览器而不是系统默认值
  • --quiet | -q - 禁止记录
  • --verbose | -V - 更多日志记录(记录所有请求,显示所有侦听的IPv4接口等)
  • --open=PATH - 启动浏览器到PATH而不是服务器root
  • --watch=PATH - 用逗号分隔的路径来专门监视变化(默认值:观看所有内容)
  • --ignore=PATH- 要忽略的逗号分隔的路径字符串(anymatch -compatible definition)
  • --ignorePattern=RGXP-文件的正则表达式忽略(即.*\.jade)(不推荐使用赞成--ignore
  • --middleware=PATH - 导出要添加的中间件功能的.js文件的路径; 可以是没有路径的名称,也可以是引用middleware文件夹中捆绑的中间件的扩展名
  • --entry-file=PATH - 提供此文件(服务器根目录)代替丢失的文件(对单页应用程序有用)
  • --mount=ROUTE:PATH - 在定义的路线下提供路径内容(可能有多个定义)
  • --spa - 将请求从/ abc转换为/#/ abc(方便单页应用)
  • --wait=MILLISECONDS - (默认100ms)等待所有更改,然后重新加载
  • --htpasswd=PATH - 启用期待位于PATH的htpasswd文件的http-auth
  • --cors - 为任何来源启用CORS(反映请求源,支持凭证的请求)
  • --https=PATH - 到HTTPS配置模块的路径
  • --proxy=ROUTE:URL - 代理ROUTE到URL的所有请求
  • --help | -h - 显示简洁的使用提示并退出
  • --version | -v - 显示版本并退出

测试

我们进入taotao-portal目录,输入命令:

live-server --port=9002

域名访问

现在访问只能通过:http://127.0.0.1:9002

希望用域名访问:http://www.taotao.com

第一步,修改hosts文件,添加一行配置:

127.0.0.1 www.taotao.com

第二步,修改nginx配置,将www.taotao.com反向代理到127.0.0.1:9002

server {
    listen       80;
    server_name  www.leyou.com;

    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location / {
        proxy_pass http://127.0.0.1:9002;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
    }
}

重新加载nginx配置:nginx.exe -s reload

common.js

为了方便后续的开发,在前台系统中定义了一些工具,放在了common.js中:

部分代码截图:

在这里插入图片描述

  • 首先对axios进行了一些全局配置,请求超时时间,请求的基础路径,是否允许跨域操作cookie等
  • 定义了对象 ly ,也叫leyou,包含了下面的属性:
    • getUrlParam(key):获取url路径中的参数
    • http:axios对象的别名。以后发起ajax请求,可以用ly.http.get()
    • store:localstorage便捷操作,后面用到再详细说明
    • formatPrice:格式化价格,如果传入的是字符串,则扩大100被并转为数字,如果传入是数字,则缩小100倍并转为字符串
    • formatDate(val, pattern):对日期对象val按照指定的pattern模板进行格式化
    • stringify:将对象转为参数字符串
    • parse:将参数字符串变为js对象
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值