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