diff --git a/Routes.js b/Routes.js index 98db25f6d..da43c2ca3 100644 --- a/Routes.js +++ b/Routes.js @@ -37,5 +37,13 @@ export const deepRoutes = [ key: "detail", path: "/:owner/:projectsId", // component: Detail, + }, + { + key: "owner", + path: "/:owner", + // component: Detail, } -] \ No newline at end of file +] + +// 不进行组织或个人判断 +export const specialRoute = ["explore", "settings", "setting", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search", "organize", "login", "register", "resetPassword", "aboutus","educoder", "glcc","bindlogin", "softbot","zone", "undefined"] \ No newline at end of file diff --git a/server/index.js b/server/index.js index 11b1a43f8..ea5cc1601 100644 --- a/server/index.js +++ b/server/index.js @@ -28,7 +28,7 @@ const proxy = createProxyMiddleware(options('http://localhost:8081')); // }); // 设置代理 -app.use(['/api', '/images', '/system', '/favicon', '/robots.txt', '/sitemap*.xml', '/sitemap*.txt'], (req, res) => { +app.use(['/api', '/images', '/system', '/favicon', '/robots.txt', '/sitemap*.xml', '/sitemap*.txt', '/favicon.ico'], (req, res) => { proxy(req, res); }); diff --git a/server/render.js b/server/render.js index ae078a2d3..f7354f7d6 100644 --- a/server/render.js +++ b/server/render.js @@ -3,7 +3,7 @@ import {renderToString} from "react-dom/server"; import {StaticRouter, matchPath} from "react-router-dom"; import {renderRoutes} from "react-router-config"; -import Routes, { deepRoutes } from "../Routes"; +import Routes, { deepRoutes, specialRoute } from "../Routes"; import { Provider } from "react-redux"; import { serverStore } from "../src/redux/stores/configureStore"; import App from "../src/App"; @@ -50,7 +50,7 @@ export const render = async (req,res)=>{ code: 200, }; - if (_route) { + if (_route && !specialRoute.includes(_match.url && _match.url.replace('/', ''))) { await changeHead(_route, _match.params) } else { return false diff --git a/server/setHead.js b/server/setHead.js index d8f804a73..4a6fdb699 100644 --- a/server/setHead.js +++ b/server/setHead.js @@ -1,6 +1,6 @@ // 兜底方案,先改head import { setDefaultMeta, setSeoMeta } from '../src/common/UrlTool' -import { getProjectDetailFunc, getMainInfos, getNewsDetail } from '../src/services/project' +import { getProjectDetailFunc, getMainInfos, getNewsDetail, getOwnerInfo } from '../src/services/project' export const changeHead = async ({ key }, params) => { let res @@ -29,6 +29,15 @@ export const changeHead = async ({ key }, params) => { setSeoMeta(`${data.name}`, data.name, data.subTitle || '', `/zone/${params.deptId}`) } break; + case 'owner': + console.log(params); + res = await getOwnerInfo(params.owner); + data = res.data + const name = data.nickname || data.username + if (data) { + setSeoMeta(`${name}`, name, data.description || '', `/${params.owner}`) + } + break; default: break; } diff --git a/src/services/project.js b/src/services/project.js index e9c30c58d..2a9894b29 100644 --- a/src/services/project.js +++ b/src/services/project.js @@ -37,6 +37,12 @@ export async function getProjectReadMe (owner, projectsId, branch) { return axios.get(url, {params: { ref: branch }}); } +export async function getOwnerInfo (owner) { + const url = `${baseUrl}/owners/${owner}.json`; + return axios.get(url); +} + + export async function getMainInfos (deptId) { const url = `${baseZoneUrl}/zone/open/zoneKey/${deptId}`; return axios.get(url);