Как получить пользовательский агент при загрузке функции в SvelteKit
Я хочу получить
user agent
на выбор, выполнять ли рендеринг на стороне сервера или нет, в зависимости от посетителя.
googlebot
или нет.
Как я могу получить к нему доступ внутри
load function
?
Я использую последнюю версию SvelteKit 1.0.0.
2 ответа
Управляли с помощью крючков.
Создавать
hooks.js
внутри
src
папка:
export const getContext = async ({headers}) => {
return {
userAgent: headers['user-agent']
}
}
export const getSession = async ({context}) => {
return {
userAgent: context.userAgent
}
}
Тогда вы можете использовать его внутри
load function
каждого компонента, который вы хотите:
<script context="module">
export async function load({ session }) {
console.log(session.userAgent)
}
</script>
См. Дополнительную информацию в документации в разделе хуков .
Мне пока не разрешено комментировать, но мне помог load({ request }):
/** @type {import('./$types').PageLoad} */
export async function load({ request }) {
const headers = request.headers;
const userAgent = headers.get('user-agent');
console.log('User agent:', userAgent);
}
Импорт JSDoc делает его удобным для машинописного ввода, по мнению Оливера Диксона