Ferndesk
Subcarpetas personalizadas

Aloja tus documentos en una subcarpeta con Vercel

Siga esta guía para alojar su centro de ayuda de Ferndesk en una subcarpeta personalizada (como yourdomain.com/help) utilizando el proxy de origen externo de Vercel.

Esto toma aproximadamente 10 minutos y requiere un proyecto de Vercel donde pueda agregar un archivo de configuración vercel.json.

¿Se ha atascado? Contacte con [email protected] y le ayudaremos a completar su configuración.

Requisitos previos

  • Un espacio de trabajo de Ferndesk con acceso de administrador

  • Un proyecto de Vercel que sirva su sitio web principal

  • Acceso para agregar un archivo vercel.json en la raíz de su proyecto

Paso 1: Configurar la subcarpeta en Ferndesk

Primero, configure su centro de ayuda de Ferndesk para usar una ruta de subcarpeta personalizada.

1

Open Help Center settings

Inicie sesión en su espacio de trabajo de Ferndesk, expanda Centro de ayuda en la barra lateral izquierda, luego haga clic en Personalizar.

2

Select Custom sub-folder

Haga clic en Dominio personalizado.

Seleccione la opción Subcarpeta personalizada.

3

Enter your domain and subfolder

Ingrese su dominio en el campo Dominio (por ejemplo, www.example.com), luego ingrese la ruta de la subcarpeta deseada en el campo Subdirectorio (por ejemplo, /help o /docs).

4

Save and copy the Ferndesk host

Haga clic en Configurar subcarpeta. Una vez configurada, copie el host proxy de Ferndesk (por ejemplo, acme.hc.ferndesk.com); lo necesitará para la configuración de Vercel.

Use su nombre de host de producción de Vercel exacto (por ejemplo, www.example.com), no un nombre de host de despliegue de vista previa. Si el nombre de host cambia después del primer despliegue, pueden persistir entradas de caché obsoletas.

Paso 2: Agregar la configuración de enrutamiento de Vercel

Cree o update el archivo vercel.json en la raíz de su proyecto para redirigir las solicitudes a Ferndesk. Esta configuración utiliza las routes de Vercel con transformaciones de encabezados de solicitud para enviar a Ferndesk la ruta base y la información de host requeridas.

1

Create or open vercel.json

Si aún no tiene un archivo vercel.json en la raíz de su proyecto, cree uno. Si ya lo tiene, ábralo para editarlo.

2

Add the configuration

Pegue la configuración a continuación en su archivo vercel.json. Reemplace los marcadores de posición con sus valores reales:

  • PUBLIC_HOST — su nombre de host de producción de Vercel (por ejemplo, www.example.com)

  • FERNDESK_HOST — el host de Ferndesk que copió del panel de Ferndesk (por ejemplo, acme.hc.ferndesk.com)

  • BASE_PATH — la ruta de su subcarpeta, incluyendo la barra diagonal inicial (por ejemplo, /help)

{
  "$schema": "https://openapi.vercel.sh/vercel.json",
  "headers": [
    {
      "source": "/_ferndesk",
      "headers": [
        { "key": "x-vercel-enable-rewrite-caching", "value": "0" }
      ]
    },
    {
      "source": "/_ferndesk/:match*",
      "headers": [
        { "key": "x-vercel-enable-rewrite-caching", "value": "0" }
      ]
    },
    {
      "source": "__BASE_PATH__",
      "headers": [
        { "key": "x-vercel-enable-rewrite-caching", "value": "0" }
      ]
    },
    {
      "source": "__BASE_PATH__/:match*",
      "headers": [
        { "key": "x-vercel-enable-rewrite-caching", "value": "0" }
      ]
    }
  ],
  "routes": [
    {
      "src": "/_ferndesk",
      "dest": "https://__FERNDESK_HOST____BASE_PATH__/_ferndesk",
      "transforms": [
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-base-path" }, "args": "__BASE_PATH__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-forwarded-host" }, "args": "__PUBLIC_HOST__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-original-host" }, "args": "__PUBLIC_HOST__" }
      ]
    },
    {
      "src": "/_ferndesk/(.*)",
      "dest": "https://__FERNDESK_HOST____BASE_PATH__/_ferndesk/$1",
      "transforms": [
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-base-path" }, "args": "__BASE_PATH__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-forwarded-host" }, "args": "__PUBLIC_HOST__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-original-host" }, "args": "__PUBLIC_HOST__" }
      ]
    },
    {
      "src": "__BASE_PATH__/_ferndesk",
      "dest": "https://__FERNDESK_HOST____BASE_PATH__/_ferndesk",
      "transforms": [
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-base-path" }, "args": "__BASE_PATH__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-forwarded-host" }, "args": "__PUBLIC_HOST__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-original-host" }, "args": "__PUBLIC_HOST__" }
      ]
    },
    {
      "src": "__BASE_PATH__/_ferndesk/(.*)",
      "dest": "https://__FERNDESK_HOST____BASE_PATH__/_ferndesk/$1",
      "transforms": [
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-base-path" }, "args": "__BASE_PATH__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-forwarded-host" }, "args": "__PUBLIC_HOST__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-original-host" }, "args": "__PUBLIC_HOST__" }
      ]
    },
    {
      "src": "__BASE_PATH__",
      "dest": "https://__FERNDESK_HOST__/",
      "transforms": [
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-base-path" }, "args": "__BASE_PATH__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-forwarded-host" }, "args": "__PUBLIC_HOST__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-original-host" }, "args": "__PUBLIC_HOST__" }
      ]
    },
    {
      "src": "__BASE_PATH__/(.*)",
      "dest": "https://__FERNDESK_HOST__/$1",
      "transforms": [
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-base-path" }, "args": "__BASE_PATH__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-forwarded-host" }, "args": "__PUBLIC_HOST__" },
        { "type": "request.headers", "op": "set", "target": { "key": "x-ferndesk-original-host" }, "args": "__PUBLIC_HOST__" }
      ]
    }
  ]
}
3

Deploy your project

Realice un commit y envíe sus cambios para activar un nuevo despliegue en Vercel. La nueva configuración de enrutamiento surtirá efecto una vez que se complete el despliegue.

La sección headers desactiva el almacenamiento en caché de reescritura de Vercel en las rutas de Ferndesk. Esto evita que se almacenen en caché respuestas Not found obsoletas cuando se solicitan activos o páginas de Ferndesk antes de que el proxy esté completamente configurado.

Paso 3: Verificar la configuración

Pruebe que su centro de ayuda sea ahora accesible en la ruta de su subcarpeta personalizada.

1

Open your subfolder URL

Navegue a https://yourdomain.com/help (o la ruta de la subcarpeta que haya elegido) en su navegador.

2

Check that the help center loads

Debería ver su centro de ayuda de Ferndesk con su marca y contenido.

3

Test navigation and assets

Navegue por algunos artículos para confirmar que la navegación funciona. Verifique que los estilos, las imágenes y el JavaScript se carguen correctamente.

Si su centro de ayuda se carga con la navegación y los estilos funcionando, el proxy inverso está configurado correctamente. Sus clientes ahora pueden acceder a su centro de ayuda en la ruta de su subcarpeta personalizada.

Resolución de problemas

Problema

Causa

Solución

Error 404 Not Found

Rutas no configuradas o despliegue incompleto

Verifique que vercel.json esté en la raíz de su proyecto y que el despliegue haya finalizado. Compruebe que todos los marcadores de posición hayan sido reemplazados por valores reales.

Página en blanco o estilos rotos

El host de Ferndesk o la ruta base son incorrectos

Verifique nuevamente que FERNDESK_HOST coincida con el host de su panel de Ferndesk y que BASE_PATH coincida exactamente con su subcarpeta configurada.

Los activos o el CSS no se cargan después de la configuración inicial

Vercel almacenó en caché una respuesta obsoleta

Vuelva a desplegar su proyecto de Vercel para borrar las respuestas almacenadas en caché. La configuración de headers debería evitar esto en futuras solicitudes.

El centro de ayuda funciona pero el nombre de host no coincide

Host público incorrecto en las rutas

Asegúrese de que PUBLIC_HOST sea su nombre de host de producción (por ejemplo, www.example.com), no una URL de vista previa de Vercel.

¿Algo salió mal? Contáctenos en [email protected] y le ayudaremos a completar su configuración.

Eliminar la subcarpeta

Para dejar de usar la subcarpeta personalizada y volver a su URL predeterminada de Ferndesk:

1

Remove the domain in Ferndesk

En Ferndesk, vaya a Centro de ayudaPersonalizarDominio personalizado y haga clic en Eliminar dominio.

2

Remove the Vercel routes

Elimine o comente las entradas de headers y routes relacionadas con Ferndesk en su archivo vercel.json, luego vuelva a desplegar.

Próximos pasos

¿Te fue útil?