后端开发是很多朋友有关注的类型,那么vue框架如何添加php文件 前端vue与后端Thinkphp在服务器的部署,我爱编程网为大家带来了相关文章,希望给大家提供参考。
使用vue如何引入ueditor及node后台配置
这篇文章主要介绍了vue引入ueditor及node后台配置详解,现在分享给大家,也给大家做个参考。
最近公司的某个客户要用上我们公司的产品,他的后台管理里的富文本编辑器要求有点多,开始打算用Quill,但是发现Quill根本满足不了他的需求。在调研了市面上的富文本编辑器后,最后似乎只剩了百度的ueditor。虽然很丑~~~,不过没关系,政府网站和这种效果更
vue引入ueditor
步骤
百度ueditor下载,随便哪个版本就好(本文章以php版为例),不需要特别全面功能的可以考虑下UM喽
将对应的文件夹放到static中
修改前端vue部分引用的ueditor.confg.js,设置路径window.UEDITOR_HOME_URL = "/static/utf8-php/"
window.UEDITOR_HOME_URL = "/static/utf8-php/"
var URL = window.UEDITOR_HOME_URL || getUEBasePath();
/**
* 配置项主体。注意,此处所有涉及到路径的配置别遗漏URL变量。
*/
window.UEDITOR_CONFIG = {
//为编辑器实例添加一个路径,这个不能被注释
UEDITOR_HOME_URL: URL
// 服务器统一请求接口路径
, serverUrl: ""
// ............ 下面忽略................编写vue文件,我已经把static配置到webpack的路径里了,自己可以相应更改,ueditor中的各项方法可以在自己下载的百度ueditor包的index.html中找。
<template>
<p class="hello">
<script id="editor" type="text/plain"></script>
<button @click="show">你敢点一下吗?</button>
</p>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
editor: null
}
},
methods: {
show () {
console.log(this.editor.getContent())
}
},
mounted () {
require('static/utf8-php/ueditor.config.js')
require('static/utf8-php/ueditor.all.min.js')
require('static/utf8-php/lang/zh-cn/zh-cn.js')
require('static/utf8-php/ueditor.parse.min.js')
this.editor = window.UE.getEditor('editor')
},
destroyed () {
this.editor.destroy()
}
}
</script>注意事项
在步骤3中的路径一定要有最后一个"/"
步骤3中的serverUrl写成对应的服务端地址
node后端处理
express 实现
网上有人已经实现了express版的,使用express的有福了。不过我直接用他的是不能直接用的,在浏览器中报": unexcepected ",我将他的代码改了一下,不让它在返回配置是重定向,而是直接返回一个jsonp,jsonp内容设置为百度的ueditor包中的php文件下的config.json,记得用正则表达式或者直接用手把注释去掉,json是没有注释的。
这时你可能发现不报错了,但是图片上传会错误,报404。其实图片已经上传成功了,只是没有正确的加载,因为返回的路径只是路径,不是完整的url,就会请求到前端服务域下。(例如"**")。此时修改config.json中"imageUrlPrefix": "",就可以将图片路径补充完整。跨域问题自己解决哈-----
res.jsonp(config.json)
给config.json的imageUrlPrefix加后端域
koa实现
这时个比较精巧的库,而且将在v3中去掉了generator写法,generator现在已经渐渐不被支持,所以使用async写法吧。我主要用了await-busboy这个库,实现文件处理。
实现判断
const ActionType = ctx.query.action
// 当ActionType为config时返回与express中一样的json
// 当为uploadimage或uploadfile时处理
处理上传
const parse = require('await-busboy')
const parts = parse(ctx)
let part,
stream,
tmp_name,
file_path,
filename
while ((part = await parts)) {
if (part.length) {
// 此处解析到form的fields
console.log({ key: part[0], value: part[1] })
} else {
// 此处解析到文件并以可读流形式返回,通过nodejs官方API存储
if(ActionType === 'uploadimage' && img_type.indexOf(path.extname(part.filename)) >= 0 ){
filename = 'pic_'+ (new Date()).getTime() + '_' + part.filename
file_path = path.join(img_path, filename)
} else if (ActionType === 'uploadfile'){
filename = 'file_'+(new Date()).getTime()+'_'+part.filename
file_path = path.join(files_path, filename)
}
stream = fs.createWriteStream(path.join(static_path,file_path))
part.pipe(stream)
tmp_name = part.filename
}
// 返回json要引用koa-jsonp哦~~上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
使用webpack打包处理bundle.js文件过大的问题
在javascript中如何实现填充默认头像
JavaScript的6种正则表达式(详细教程)
我爱编程网
前端vue与后端Thinkphp在服务器的部署
vue在服务端部署时,我们都知道通过npm run build 指令打包好的dist文件,通过http指定是可以直接浏览的,Thinkphp通过域名指向index.php文件才可以浏览。要使前端正常调用后端数据,有两种方法:1、前端跨域调用后端数据,2、前端打包文件部署在后端的服务器文件夹下(同域)。
web服务器: apache
一、跨域
在服务器配置站点:
在路径/home/www/ 下创建test项目文件夹,用来放项目文件。
找到httpd-vhosts.conf文件配置站点
前端站点:
ServerName test.test.com
DocumentRoot "/home/www/test/dist"
DirectoryIndex index.html
后端站点:
ServerName test.testphp.com
DocumentRoot "/home/www/test/php"
DirectoryIndex index.php
将前端打包好的dist文件放在/home/www/test/ 文件夹下,运行
可浏览,当路径改变时,刷新会出现404错误。此时dist文件下创建一个.htaccess文件,当路径不存在时,路径指向
/index.html能解决此问题。
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
在/home/www/test文件夹下创建项目根目录php文件夹,将thinkphp文件放在php下。TP5的入口文件在public文件下,在这将public下的入口文件index.php挪到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;
}
}
前端调用登录接口: this.axios.post('
', {user: '', password: ''})。
(可在webpack.base.conf.js文件下可定义接口:
)
二、同域
后端配置同上,公共配置器中的header配置注释。将前端的dist文件下的所有文件(包含.htaccess),放在php文件夹下。将后端index控制器的index方法的路径重定向php下的index.html文件:
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index() {
$this->redirect('/index.html');
}
}
前端调用登录接口: this.axios.post('/index.php/base/login', {user: '', password: ''})
转自:
vue怎么和后端对接
我们在使用vue框架的时候,需要和后端完成对接才可以同步数据修改,那么vue怎么和后端对接数据呢,其实我们只要根据不同数据执行对应的命令就可以了。
vue怎么运行
方法一:
1、首先输入以下代码来获取数据:
this.$http.get('a.txt').then(function(res){
alert(res.data);
},function(res){
alert(res.status);
});
2、然后输入以下命令向服务器发送即可:(这里的a1、b2指的就是我们要发送的数据)
this.$http.get('a.php',{
a:1,
b:2
}).then(function(res){
alert(res.data);
},function(res){
alert(res.status);
});
方法二:
1、我们也可以使用
post
来传递第三个或更多数据。
输入以下代码即可({emulateJSON:true}):
this.$http.post('a.php',{
a:1,
b:2
},{
emulateJSON:true
}).then(function(res){
alert(res.data);
},function(res){
alert(res.status);
});
以上就是我爱编程网为大家带来的vue框架如何添加php文件 前端vue与后端Thinkphp在服务器的部署,希望能帮助到大家,了解更多相关信息,敬请关注我爱编程网。