diff --git a/Dockerfile b/Dockerfile index a7931a588..83e0d73b0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # building frontend -FROM node:22-slim as frontend +FROM node:22-slim AS frontend WORKDIR /app/frontend COPY web/package.json web/yarn.lock ./ @@ -40,8 +40,9 @@ FROM python:3.12-slim ENV MAX_UPLOAD_SIZE=100M # set up the system -RUN apt update && \ - apt install --yes nginx dumb-init libmagic1 gettext && \ +RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources && \ + apt-get update && \ + apt-get install --yes nginx dumb-init libmagic1 gettext && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/docat/doc diff --git a/docat/docat/nginx/default b/docat/docat/nginx/default index 52b354460..18e07fc5f 100644 --- a/docat/docat/nginx/default +++ b/docat/docat/nginx/default @@ -23,6 +23,6 @@ server { } location / { - try_files $uri $uri/ =404; + try_files $uri $uri/ /index.html =404; } } diff --git a/web/src/App.tsx b/web/src/App.tsx index d71e2b54a..978f8f8b2 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -1,4 +1,4 @@ -import { createHashRouter, RouterProvider } from 'react-router-dom' +import { createBrowserRouter, RouterProvider } from 'react-router-dom' import React from 'react' import { ConfigDataProvider } from './data-providers/ConfigDataProvider' import { ProjectDataProvider } from './data-providers/ProjectDataProvider' @@ -14,7 +14,7 @@ import { MessageBannerProvider } from './data-providers/MessageBannerProvider' import { SearchProvider } from './data-providers/SearchProvider' function App(): JSX.Element { - const router = createHashRouter([ + const router = createBrowserRouter([ { path: '/', errorElement: , diff --git a/web/src/pages/Docs.tsx b/web/src/pages/Docs.tsx index a2834f7dd..1cd7b275c 100644 --- a/web/src/pages/Docs.tsx +++ b/web/src/pages/Docs.tsx @@ -103,7 +103,7 @@ export default function Docs(): JSX.Element { hash: string, hideUi: boolean ): string => { - return `#/${project}/${version}/${encodeURIComponent(page)}${hash}${hideUi ? '?hide-ui=true' : ''}` + return `/${project}/${version}/${encodeURIComponent(page)}${hash}${hideUi ? '?hide-ui=true' : ''}` } const updateUrl = (newVersion: string, hideUi: boolean): void => { diff --git a/web/src/pages/Home.tsx b/web/src/pages/Home.tsx index 47db55e63..c99288456 100644 --- a/web/src/pages/Home.tsx +++ b/web/src/pages/Home.tsx @@ -3,7 +3,6 @@ import React, { useEffect, useState } from 'react' import { useProjects } from '../data-providers/ProjectDataProvider' import { ErrorOutline } from '@mui/icons-material' import { type Project } from '../models/ProjectsResponse' -import { useLocation } from 'react-router' import { useSearch } from '../data-providers/SearchProvider' import ProjectRepository from '../repositories/ProjectRepository' @@ -24,21 +23,8 @@ export default function Home(): JSX.Element { const [nonFavoriteProjects, setNonFavoriteProjects] = useState([]) const [favoriteProjects, setFavoriteProjects] = useState([]) - const location = useLocation() - document.title = 'Home | docat' - // insert # into the url if it's missing - useEffect(() => { - const nonHostPart = window.location.href.replace(window.location.origin, '') - - if (nonHostPart.startsWith('#') || nonHostPart.startsWith('/#')) { - return - } - - window.location.replace(`/#${nonHostPart}`) - }, [location]) - const updateFavorites = (): void => { if (projects == null) return