vue がサーバー側にデプロイされている場合、npm run build コマンドでパッケージ化された dist ファイルは、http で指定することで直接参照できることは誰もが知っていますが、Thinkphp はインデックスを指定することによってのみ参照できます。 php ファイルをドメイン名経由で読み込みます。フロントエンドがバックエンドデータを正常に呼び出せるようにします。
#2 つのメソッドがあります:
#1. フロントエンドは、ドメイン間のバックエンド データ。 2. フロントエンド パッケージ ファイルはバックエンド サーバー フォルダー (同じドメイン) にデプロイされます。 Web サーバー: apache例: クロスドメイン
サーバー上のサイトの構成:在路径/home/www/ 下创建test项目文件夹,用来放项目文件。 找到httpd-vhosts.conf文件配置站点 前端站点: <VirtualHost *:80> ServerName test.test.com DocumentRoot "/home/www/test/dist" DirectoryIndex index.html </VirtualHost> 后端站点: <VirtualHost *:80> ServerName test.testphp.com DocumentRoot "/home/www/test/php" DirectoryIndex index.php </VirtualHost>
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] </IfModule>
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; } }
同じドメイン
バックエンド構成は上記と同じであり、パブリック コンフィギュレーターのヘッダー構成アノテーションも同じです。 php フォルダー内のフロントエンド dist ファイル (.htaccess を含む) の下にすべてのファイルを配置します。バックエンド インデックス コントローラーのインデックス メソッドのパスを PHP のindex.html ファイルにリダイレクトします:namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { $this->redirect('/index.html'); }
Thinkphp チュートリアル列にアクセスして学習してください。
以上がvuejs と thinkphp を組み合わせる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。