По умолчанию, если библиотека i18n используется без библиотеки next-routs, независимо от того, какой язык используется, я имею в виду, что URL имеют префикс, например http://localhost:8080/some-path или http://localhost:8080/de/some-path. В этом случае статический контент загружается постоянно с http://localhost:8080/static/font/whatever.woff. А если при добавлении следующего маршрута и использовании одних и тех же URL-адресов статический контент загружается с http://localhost:8080/de/static/font/whatever.woff. Проблема в том, что я использую Varnish, и не рекомендуется добавлять правила URL
Это сервер Linux 18.04 с Varnish и nginx.
код узла.js:
const express = require('express');
const cookieParser = require('cookie-parser');
const next = require('next');
const nextI18NextMiddleware = require('next-i18next/middleware');
const compression = require('compression');
const helmet = require('helmet');
const path = require('path');
const nextI18next = require('./i18n');
const routes = require('./routes');
const port = process.env.PORT || 3000;
const app = next({ dev: process.env.NODE_ENV !== 'production' });
const handler = routes.getRequestHandler(app);
(async () => {
await app.prepare();
const server = express();
server.use(helmet());
server.use(cookieParser());
server.use(compression());
server.use(nextI18NextMiddleware(nextI18next));
server.use(handler);
server.get('/service-worker.js', (req, res) =>
app.serveStatic(req, res, path.join(__dirname, '.next', '/service-worker.js')),
);
await server.listen(port);
console.log(`> Ready on http://localhost:${port}`);
})();
Я ожидаю, что ресурсы, встроенные в javascript, будут загружаться всегда, например, с. http://localhost:8080/static/font URl независимо от выбранного языка в приложении.