diff --git a/frontend/app/pages/leaderboards/[key].vue b/frontend/app/pages/leaderboards/[key].vue
new file mode 100644
index 000000000..e38596d0a
--- /dev/null
+++ b/frontend/app/pages/leaderboards/[key].vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
diff --git a/frontend/app/pages/leaderboards/index.vue b/frontend/app/pages/leaderboards/index.vue
new file mode 100644
index 000000000..91e806279
--- /dev/null
+++ b/frontend/app/pages/leaderboards/index.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
diff --git a/frontend/setup/caching.ts b/frontend/setup/caching.ts
index ce33f6b92..6dd945322 100644
--- a/frontend/setup/caching.ts
+++ b/frontend/setup/caching.ts
@@ -4,15 +4,12 @@ const longCache = 86400; // 1 day in seconds
const shortCache = 3600; // 1 hour in seconds
export default {
- routeRules:
- process.env.NUXT_APP_ENV === 'production'
+ routeRules: {
+ '/auth/callback': { redirect: '/api/auth/callback' },
+ '/callback': { redirect: '/api/auth/callback' },
+ '/api/auth/**': { prerender: false, index: false, cache: false },
+ ...(process.env.NUXT_APP_ENV === 'production'
? {
- '/auth/callback': { redirect: '/api/auth/callback' },
- '/api/auth/callback': { prerender: false, index: false, cache: false },
- '/api/auth/login': { prerender: false, index: false, cache: false },
- '/api/auth/logout': { prerender: false, index: false, cache: false },
- '/api/auth/user': { prerender: false, index: false, cache: false },
- '/api/auth/silent-check': { prerender: false, index: false, cache: false },
'/api/health': { cache: false },
'/api/chat/**': { cache: false },
'/api/health/live': { cache: false },
@@ -22,24 +19,20 @@ export default {
'/api/category': { cache: { maxAge: longCache, base: 'redis' } },
'/api/collection': { cache: { maxAge: longCache, base: 'redis' } },
'/api/explore/**': { cache: { maxAge: longCache, base: 'redis' } },
+ '/api/leaderboard': { cache: { maxAge: longCache, base: 'redis' } },
'/api/leaderboard/**': { cache: { maxAge: longCache, base: 'redis' } },
'/api/project': { cache: { maxAge: longCache, base: 'redis' } },
'/api/ossindex': { cache: { maxAge: longCache, base: 'redis' } },
'/api/**': { cache: { maxAge: shortCache, base: 'redis' } },
+ '/leaderboard': { cache: { maxAge: longCache, base: 'redis' } },
+ '/leaderboard/**': { cache: { maxAge: longCache, base: 'redis' } },
'/project/**': { cache: { maxAge: shortCache, base: 'redis' } },
'/collection/**': { cache: { maxAge: shortCache, base: 'redis' } },
'/collection': { cache: { maxAge: shortCache, base: 'redis' } },
'**': { cache: { maxAge: longCache, base: 'redis' } },
}
- : {
- '/auth/callback': { redirect: '/api/auth/callback' },
- '/callback': { redirect: '/api/auth/callback' },
- '/api/auth/callback': { prerender: false, index: false, cache: false },
- '/api/auth/login': { prerender: false, index: false, cache: false },
- '/api/auth/logout': { prerender: false, index: false, cache: false },
- '/api/auth/user': { prerender: false, index: false, cache: false },
- '/api/auth/silent-check': { prerender: false, index: false, cache: false },
- },
+ : {}),
+ },
nitro: {
storage: {
redis: {