Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

178
Visualizações
No se puede abrir el enlace que contiene caracteres especiales

Tengo la aplicación Django que pruebo en mi PC local y luego, cuando agrego algo nuevo, cargo los cambios en el servidor virtual de mi empresa. Tengo un problema con los enlaces a los archivos. A continuación se muestra el código de los enlaces a los archivos adjuntos (tanto mi local como el servidor tienen el mismo código):

 <p class="article-content mt-2 mb-1"><strong>Attachment: </strong><a href="{{post.file_close.url}}">{{post.file_close.name}}</a></p>

Si subo el archivo cars.png todo funciona bien en ambas versiones. Esto funciona sin importar la extensión, pdf, excel, imagen, etc. El problema es que si subo el archivo carsčč.png falla solo en el lado del servidor, en mi PC funciona muy bien. Recibo el siguiente error en mi Django/debugg:

 Page not found (404) “C:\inetpub\files\PyWeb\media\PN_files\2022\03\06\cars” does not exist

La URL de la página de error es:

 http://hidden_part/media/PN_files/2022/03/06/carsčč.png

Pero cuando hago clic en copiar y pegar es así:

 http://hidden_part/media/PN_files/2022/03/06/cars%C4%8D%C4%8D.png

Como el enlace no está completo, se detuvo tan pronto como se encuentra con un carácter especial. Pero, el enlace que se muestra todavía contiene todas las letras, es PN_files/2022/03/06/carsčč.png Probado: miré la configuración regional, es lo mismo en ambas PC. ¿Hay algo más que pueda revisar o cambiar? ¿Quizás incluir algo en el enlace? Además, cuando busco manualmente el archivo, el nombre no está dañado, se guarda localmente como carsčč.png . Así que supongo que es solo el enlace, trate de obtener el archivo. Me di cuenta de que es por las letras diacríticas. En mi 'base.html' tengo meta charset="utf-8" . Django configurando LANGUAGE_CODE = 'hr-BA' .

Uso Bootstrap 4.0 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">

El servidor está alojado en Windows, IIS, .NET La configuración de globalización está establecida en utf-8.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

En la línea <a href="{{post.file_close.url}}"> está llamando internamente al método url() de la clase de almacenamiento subyacente, que devuelve la URL incorrecta “C:\inetpub\files\PyWeb\media\PN_files\2022\03\06\cars” .

El problema principal está dentro de su clase de almacenamiento. Probablemente esté utilizando FileSystemStorage de django. Cada vez que guarda un archivo, la clase de almacenamiento llama a storage.get_valid_name , que devuelve un nombre que es adecuado para usar en el sistema de destino ( ref ). En este paso se reemplazan los caracteres especiales. El código proporcionado en Storage conserva solo los caracteres alfanuméricos, los puntos y los guiones bajos del nombre de archivo original, eliminando todo lo demás ( ref ). El código proporcionado en Storage conserva solo los caracteres alfanuméricos, los puntos y los guiones bajos del nombre de archivo original, eliminando todo lo demás. ).

Si desea cambiar este comportamiento, puede escribir su propia clase de almacenamiento personalizada y sobrescribir el método get_valid_name ( ref ).

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda