前端vue与后端Thinkphp在服务器的部署

前端vue与后端Thinkphp在服务器的部署,第1张

vue在服务端部署时,我们都知道通过npm run build 指令打包好的dist文件,通过http指定是可以直接浏览的,Thinkphp通过域名指向indexphp文件才可以浏览。要使前端正常调用后端数据,有两种方法:1、前端跨域调用后端数据,2、前端打包文件部署在后端的服务器文件夹下(同域)。

web服务器: apache

一、跨域

在服务器配置站点:

在路径/home/www/  下创建test项目文件夹,用来放项目文件。  

找到httpd-vhostsconf文件配置站点  

前端站点:  

    ServerName testtestcom  

    DocumentRoot "/home/www/test/dist"    

    DirectoryIndex indexhtml  

后端站点:  

    ServerName testtestphpcom  

    DocumentRoot "/home/www/test/php"    

    DirectoryIndex indexphp  

将前端打包好的dist文件放在/home/www/test/ 文件夹下,运行http://testtestcom可浏览,当路径改变时,刷新会出现404错误。此时dist文件下创建一个htaccess文件,当路径不存在时,路径指向http://testtestcom/indexhtml能解决此问题。

  RewriteEngine On  

  RewriteBase /  

  RewriteRule ^index\html$ - [L]  

  RewriteCond %{REQUEST_FILENAME} !-f  

  RewriteCond %{REQUEST_FILENAME} !-d  

  RewriteRule  /indexhtml [L]  

在/home/www/test文件夹下创建项目根目录php文件夹,将thinkphp文件放在php下。TP5的入口文件在public文件下,在这将public下的入口文件indexphp挪到php文件夹下(个人习惯将入口文件放在项目根目录), 后端绑定Index模块。

前端调用后端接口,存在跨域,跨域解决方法有好几种,在这我将在后端php做配置,解决跨域问题,在公用控制器设置跨域配置:

class Common extends Controller  

{  

    public $param;  

    // 设置跨域访问  

    public function _initialize()  

    {  

        parent::_initialize();  

        isset($_SERVER['HTTP_ORIGIN'])  header('Access-Control-Allow-Origin: '$_SERVER['HTTP_ORIGIN']) : '';  

        header('Access-Control-Allow-Credentials: true');  

        header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');  

        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, authKey, sessionId");  

$param =  Request::instance()->param();  

$this->param = $param;  

    }  

}  

前端调用登录接口: thisaxiospost('http://testtestphpcom/indexphp/base/login', {user: '', password: ''})。

(可在webpackbaseconfjs文件下可定义接口:http://testtestphpcom/indexphp/)

二、同域

后端配置同上,公共配置器中的header配置注释。将前端的dist文件下的所有文件(包含htaccess),放在php文件夹下。将后端index控制器的index方法的路径重定向php下的indexhtml文件:

namespace app\index\controller;  

use think\Controller;  

class Index extends Controller  

{  

    public function index() {  

$this->redirect('/indexhtml');  

    }  

}  

前端调用登录接口: thisaxiospost('/indexphp/base/login', {user: '', password: ''})

转自:https://blogcsdnnet/qq_35465132/article/details/78986675

前言:

关于vue和elementui安装导入使用不做介绍

1template中首先展示upload多张上传

2当upload组件发生改变时处罚addFile

3提交到服务器,拿到服务器的数据地址

3显示 将拿到的数据放进一个数组中显示到file-list中去就好了

至此,完结。

有不对的地方欢迎指导哦。

既然是布署,哪默认就应该是生产环境下的布署,vue开发的应用本质上就是静态文件,无论你用何种web服务器,放上去就应该能通过http访问

接下来我来帮大家来捋一捋

首先VUE 是一个javascript的前端框架,注定了它是运行在浏览器里的,对服务器本地没有任何要求,只要一个静态文件服务器能通过http访问到其资源文件就足矣!无论你是用apache ,ngnix 就算你要用node 自己实现一个静态文件服务器,也用不了多少行代码。

npm run dev 是用来在本地开发的时候做调试用的,vue开发的是前端的东西,不是nodejs 服务端程序,按道理讲,生产环境里就不该存在npm,甚至nodejs也不需要(用nodejs来做web静态服务的除外),楼主通过ssh进入到服务器里,再运行npm run dev 来启动哪是开发机上做的事情。正确的做法很简单,通过npm run build 把生成的dist文件夹(不要上传文件夹)里的内容上传到http服务器上就可以通过 http来访问了,开发机上正常,上传以后 程序出现错误不能运行的原因9999%的可能性是你引用资源的路径有问题。

一般如果vue框架的程序上传到网站服务器的根目录下是不 会有问题的,也不存在资源文件引用错误的情况,但如果你不是根目录,就会有问题,通过vue-cli 生成的开发目录,build以后默认引用资源文件的路径是

有更多疑问 ”可以咨询 ”小鸟云,它是的一家服务器厂商,我一直在用他们产品!

在dist目录下的static静态资源,通过路由访问时,会多出一个路由在静态资源前面,如:

ip:8080/Test/static/onejs

Test路由的存在导致 onejs报404问题;

项目在构建dist时,路由配置的问题,找到Vue项目下

/src/router/indexjs文件,

更改为如图方式:

重新 npm run build,将dist替换到服务器上,重新构建docker镜像及启动容器即可

创建文件选择按钮。

1、在Vue组件中创建一个用于选择文件的按钮。

2、使用Vue的事件绑定,监听文件选择按钮的change事件。

3、利用Vue的HTTP库(如axios)或其他文件上传插件,将选择的文件上传至服务器。

vue项目导入本地json文件的2种方法

一、通过网络请求导入

步骤:

1找到vue项目目录下的build/webpackdevconfjs文件

2

3

4在页面钩子函数触发时,调用

created() {

        this$httpget('/api/customs_cut_mode')then((response) => {

          response = responsebody;

          if (responseerrno == ERR_OK||responseerrno ==0) {

            thiscustoms_cut_mode= responsedata;

          }

        });

      }

二、通过ES6导入本地json

1将json数据放入指定目录。

2在页面引入

import   customs_cut_mode   from '//common/Alljson/customs_cut_modejson'

3页面使用

mounted() {

      thiscustoms_cut_mode= customs_cut_mode

      // consolelog( thiscustoms_cut_mode)

    },

一、将vue项目进行打包编译后,根目录生成dist的文件

当出现如上图显示时,说明打包编译完成,已经生成dist文件

二、打开iis服务器

打开iis服务器后选中网站后右击选添加网站,就可对网站进行配置,物理路径选择编译后的dist文件夹后选确定就行。

三、右击选择启动后出现如下报错信息:

除非Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站

解决:

打开命令提示符中输入servicesmsc ,打开服务。

找到windows install及word wide web发布服务选项,分别右击启动,并右键属性改为启动类型就可以。

这是重新启动下,就可以访问。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 前端vue与后端Thinkphp在服务器的部署

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情