在Vue和Laravel的组合中,Vue通常作为前端框架,Laravel作为后端API服务。为了高效部署Vue打包后的应用和Laravel API,可以采取以下步骤:
将Vue前端和Laravel后端分离部署,这样可以独立管理和扩展。
在Vue项目中,使用以下命令打包应用:
npm run build
这将生成一个dist
目录,包含所有静态文件(HTML、CSS、JS等)。
将dist
目录中的文件部署到Web服务器(如Nginx或Apache)的静态文件目录中。例如,使用Nginx:
server {
listen 80;
server_name yourdomain.com;
root /path/to/your/vue/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
这样,Vue应用就可以通过yourdomain.com
访问。
将Laravel项目部署到服务器上,确保配置好.env
文件中的数据库连接和其他环境变量。
使用Composer安装依赖:
composer install --optimize-autoloader --no-dev
生成应用密钥:
php artisan key:generate
优化配置缓存:
php artisan config:cache
php artisan route:cache
配置Nginx或Apache来服务Laravel应用。例如,使用Nginx:
server {
listen 80;
server_name api.yourdomain.com;
root /path/to/your/laravel/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
这样,Laravel API就可以通过api.yourdomain.com
访问。
如果Vue应用和Laravel API部署在不同的域名下,需要在Laravel中配置CORS。可以使用fruitcake/laravel-cors
包:
composer require fruitcake/laravel-cors
然后在app/Http/Kernel.php
中注册中间件:
protected $middleware = [
\Fruitcake\Cors\HandleCors::class,
// 其他中间件
];
在config/cors.php
中配置允许的域名:
return [
'paths' => ['api/*'],
'allowed_methods' => ['*'],
'allowed_origins' => ['https://yourdomain.com'],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => false,
];
使用CI/CD工具(如GitLab CI、Jenkins、GitHub Actions等)自动化部署流程。例如,使用GitHub Actions:
name: Deploy Vue and Laravel
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install npm dependencies
run: npm install
- name: Build Vue app
run: npm run build
- name: Deploy Vue app
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SERVER_SSH_KEY }}
source: "dist/*"
target: "/path/to/your/vue/dist"
- name: Install Composer dependencies
run: composer install --optimize-autoloader --no-dev
- name: Deploy Laravel API
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SERVER_SSH_KEY }}
source: "laravel/*"
target: "/path/to/your/laravel"
部署完成后,使用监控工具(如Prometheus、Grafana、New Relic等)监控应用性能和服务器状态,确保应用稳定运行。
通过以上步骤,你可以高效地部署Vue打包后的应用和Laravel API。分离前后端、自动化部署和配置CORS是确保应用高效运行的关键。