From 22eaa56f1a8f08bccf905f4fb3b70df94bf1712f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E5=BF=83=E5=AE=87?= Date: Mon, 6 May 2024 11:40:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=AB=AF=E8=AF=B7=E6=B1=82cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/render.js | 9 +++++++++ src/forge/Main/Detail.js | 3 +-- src/forge/Server/Index.jsx | 6 +++--- src/services/project.js | 24 ++++++++++++++++++++++++ 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/server/render.js b/server/render.js index e3e60734..7ea84418 100644 --- a/server/render.js +++ b/server/render.js @@ -56,6 +56,15 @@ export const render = async (req,res)=>{ if (_route && _route.component && _route.component.preFetch) { + + // 设置服务端请求cookie + let cookies = req.headers.cookie.split(';') + for (let index = 0; index < cookies.length; index++) { + const element = cookies[index]; + domObj.window.document.cookie = element + } + + context = await _route.component.preFetch({ store, match: _match, diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 79dda302..689f8d49 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -308,8 +308,7 @@ class Detail extends Component { secondSync: false, mirror_status:0 }) - // this.getBanner(this.props.projectMenu) - this.getBanner() + this.getBanner(this.props.projectMenu) let projectdata if (this.props.defaultDetail) { projectdata = this.props.defaultDetail diff --git a/src/forge/Server/Index.jsx b/src/forge/Server/Index.jsx index 7a64541f..9a6f57e4 100644 --- a/src/forge/Server/Index.jsx +++ b/src/forge/Server/Index.jsx @@ -29,9 +29,9 @@ function ServerIndex(props){ useEffect(()=>{ // 非项目协作者不可进入服务tab (3397) - // if(projectDetail && projectDetail.permission === ""){ - // props.history.push(`/${owner}/${projectsId}`); - // } + if(projectDetail && projectDetail.permission === ""){ + props.history.push(`/${owner}/${projectsId}`); + } }, [projectDetail]) return( diff --git a/src/services/project.js b/src/services/project.js index 55c34e23..ebf527ab 100644 --- a/src/services/project.js +++ b/src/services/project.js @@ -18,41 +18,65 @@ const axiosInstance = axios.create({ // export async function getProjectFunc (owner, projectsId) { const url = `${baseUrl}/${owner}/${projectsId}/simple.json`; + if (__SERVER__) { + axiosInstance.defaults.headers.cookie = domObj.window.document.cookie + } return axiosInstance.get(url); } export async function getProjectDetailFunc (owner, projectsId) { const url = `${baseUrl}/${owner}/${projectsId}/detail.json`; + if (__SERVER__) { + axiosInstance.defaults.headers.cookie = domObj.window.document.cookie + } return axiosInstance.get(url); } export async function getProjectEntriesFunc (owner, projectsId, branch) { const url = `${baseUrl}/${owner}/${projectsId}/entries.json`; + if (__SERVER__) { + axiosInstance.defaults.headers.cookie = domObj.window.document.cookie + } return axiosInstance.get(url, {params: { ref: branch }}); } export async function getBannerFunc (owner, projectsId) { const url = `${baseUrl}/${owner}/${projectsId}/menu_list.json`; + if (__SERVER__) { + axiosInstance.defaults.headers.cookie = domObj.window.document.cookie + } return axiosInstance.get(url); } export async function getProjectReadMe (owner, projectsId, branch) { const url = `${baseUrl}/${owner}/${projectsId}/readme.json`; + if (__SERVER__) { + axiosInstance.defaults.headers.cookie = domObj.window.document.cookie + } return axiosInstance.get(url, {params: { ref: branch }}); } export async function getOwnerInfo (owner) { const url = `${baseUrl}/owners/${owner}.json`; + if (__SERVER__) { + axiosInstance.defaults.headers.cookie = domObj.window.document.cookie + } return axiosInstance.get(url); } export async function getMainInfos (deptId) { const url = `${baseZoneUrl}/zone/open/zoneKey/${deptId}`; + if (__SERVER__) { + axiosInstance.defaults.headers.cookie = domObj.window.document.cookie + } return axiosInstance.get(url); } export async function getNewsDetail (id) { const url = `${baseZoneUrl}/cms/doc/open/${id}`; + if (__SERVER__) { + axiosInstance.defaults.headers.cookie = domObj.window.document.cookie + } return axiosInstance.get(url); } From a9377b1f5cfa14fa5d4096e71ef1e369a887498c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E5=BF=83=E5=AE=87?= Date: Mon, 6 May 2024 12:49:41 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=8C=B9=E9=85=8D=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=AE=8C=E5=85=A8ssr=E7=9A=84=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Routes.js | 4 ++++ server/render.js | 24 ++++++++++++++---------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Routes.js b/Routes.js index 8901b19c..c7400765 100644 --- a/Routes.js +++ b/Routes.js @@ -26,21 +26,25 @@ export const deepRoutes = [ { key: "zoneNews", path: "/zone/:deptId/newdetail/:id", + onlyHead: true, // component: NewsDetail }, { key: "zone", path: "/zone/:deptId", + onlyHead: true, // component: Information }, { key: "detail", path: "/:owner/:projectsId", + onlyHead: false, component: Detail, }, { key: "owner", path: "/:owner", + onlyHead: true, // component: Detail, } ] diff --git a/server/render.js b/server/render.js index 7ea84418..9ee936c1 100644 --- a/server/render.js +++ b/server/render.js @@ -72,16 +72,20 @@ export const render = async (req,res)=>{ }); } - const content = renderToString(( - - - - {renderRoutes(Routes)} - {/* */} - - - - )) + let content = undefined + + if (_route && !specialRoute.includes(_match.url && _match.url.replace('/', '')) && !_route.onlyHead) { + content = renderToString(( + + + + {renderRoutes(Routes)} + {/* */} + + + + )) + } if (!content) { // 未匹配到详情页恢复默认header