es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“Phoenix.Router.NoRouteError” cuando se intenta acceder al archivo de imagen cargado en un subdirectorio de la aplicación Phoenix.

Aquí tienes la traducción al español:

“Soy un aprendiz de Phoenix / Elixir :)\n\nIntenté acceder a un archivo de imagen en un subdirectorio (es decir, dashboard) de una aplicación Phoenix, algo como:\n\nhttp://localhost:8000/dashboard/media/tv1_1.jpg\n```\npero sigue arrojándome el mismo mensaje de error:\n\nPhoenix.Router.NoRouteError en GET /dashboard/media/tv1_1.jpg\nno se encontró ninguna ruta para GET /dashboard/media/tv1_1.jpg\n\nAquí tienes un fragmento de mi configuración en `endpoint.ex`:\n\n plug Plug.Static,\n at: “/dashboard”,\n from: :my_dashboard,\n gzip: false,\n only: ~w(css fonts images js favicon.ico robots.txt)\n\n\n\nplug Plug.Static, at: “/media”,\n from: “usermedia”,\n only: ~w(*.mp4 *.jpg *.jpeg *.png)\n“`\n\nAdemás, he colocado la carpeta de carga (usermedia) en el mismo nivel que el directorio raíz de la aplicación Phoenix.\n\nEspero que alguien pueda señalar qué es lo que me he perdido aquí.\n\nGracias de antemano.\n-dewa-“

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según el mensaje de error, parece que no se ha configurado una ruta para la ruta “/dashboard/media/tv1_1.jpg”. Para acceder a un archivo de imagen en un subdirectorio de una aplicación Phoenix, debes asegurarte de que haya una ruta y un plug correspondientes configurados para servir los archivos estáticos.

    En el fragmento de código proporcionado de endpoint.ex, hay dos plugs configurados para servir archivos estáticos. El primero es para servir recursos en la ruta “/dashboard” y el segundo es para servir recursos en la ruta “/media”. Sin embargo, el segundo plug está configurado para servir archivos desde el directorio “user_media”, que se encuentra al mismo nivel que el directorio raíz de la aplicación Phoenix.

    Para acceder al archivo de imagen en la ruta “/dashboard/media”, debes modificar la opción “from” del segundo plug para que apunte al subdirectorio “dashboard/media”. El fragmento de código modificado para endpoint.ex se vería así:

    plug Plug.Static,
      at: "/dashboard",
      from: "dashboard",
      gzip: false,
      only: ~w(css fonts images js favicon.ico robots.txt)
    
    plug Plug.Static,
      at: "/media",
      from: "dashboard/media",
      only: ~w(*.mp4 *.jpg *.jpeg *.png)
    

    Asegúrate de que el archivo “tv1_1.jpg” exista en el directorio “dashboard/media” y reinicia el servidor de Phoenix. Ahora deberías poder acceder al archivo a través de la URL “http://localhost:8000/dashboard/media/tv1_1.jpg”.

Comments are closed.