項目遷移URL解決方案

此文章是 Rain/doc/先後端開發約定-項目遷移解決方案- 獨立通用版本。用於避免和解決項目遷移目錄時大量的路徑修改工做,並提醒新員工別在項目開始時就踩坑。php

考慮以下場景:html

<!-- 首頁代碼 -->
您好,請<a href="/login/">登陸</a>

項目是一個博客系統,域名是 http://www.domain.com 登陸地址是 http://www.domian.com/login/前端

上線後需求方要求將博客遷移至 http://www.domain.com/blog/git

遷移後訪問頁面,點擊登陸(/login/)。打開 /login/ 頁面後出現404。由於博客的登陸頁面變成了 /blog/login/,而頁面中的連接沒有修改。github

此時須要將全部頁面中的 URL 都加上 /blog/ 前綴才能夠確保全部 URL 正確,/login/ 改成 /blog/login/ 等。ajax


當項目遷移至子目錄時,由於 URL 前綴固定致使全部頁面須要同時修改。咱們經過前綴變量的方式解決這個問題。後端

PHP代碼修改以下框架

define("APP_PATH","/");
您好,請<a href="<?php echo APP_PATH ?>login/">登陸</a>

渲染結果:您好,請<a href="/login/">登陸</a>dom

此處是原生 PHP 渲染頁面示例,不一樣後端框架渲染頁面方式不一樣。大體都是定義一個常量,每一個 URL 都加上此常量。url

使用此方案後,可經過修改常量完成全部頁面 URL 的遷移。

define("APP_PATH","/blog/");
您好,請<a href="<?php echo APP_PATH ?>login/">登陸</a>

渲染結果:您好,請<a href="/blog/login/">登陸</a>

前端注意 AJAX 路徑的配置

AJAX 路徑也須要加上項目路徑前綴,防止項目遷移 AJAX 路徑錯誤。參考以下示例:

<script>
var APP_PATH = "<?php echo APP_PATH ?>";
// 渲染結果:
var APP_PATH = "/";
</script>
<script>
$.get(APP_PATH + 'url/', function () {
    // ...
})
</script>

點此訂閱博客

訪問Github原文進行討論:https://github.com/nimojs/blog/issues/11

相關文章
相關標籤/搜索