2011-03-15 17 views
18

En un sitio de intranet, digamos que quiero enlazar a un archivo en un recurso compartido utilizando UNC, en:Solución para href = "file: ///// ..." en Firefox

\\servername\foldername\filename.rtf 

parece que la forma correcta de hacerlo es con un marcado así:

<a href="file://///servername/foldername/filename.rtf">filename.rtf</a> 

Eso es cinco barras - dos para el protocolo, uno para indicar la raíz del sistema de archivos, luego dos más para indicar el inicio del servidor nombre.

Esto funciona bien en IE7, pero en Firefox 3.6 solo funcionará si el html es de un archivo local. No puedo hacer que funcione cuando el archivo proviene de un servidor web. El enlace está "muerto": al hacer clic en él no se hace nada.

¿Hay alguna solución para esto en Firefox? Esos dos navegadores deberían ser todo lo que necesito preocuparme por ahora.

Dado que esto es obviamente una característica de Firefox, no es un error, ¿alguien puede explicar cuál es el beneficio de prevenir este tipo de enlace?

+0

¿Tiene '' filename.rtf trabajar? –

+4

esta es una medida de seguridad del navegador. ¿querrías que la página web de otra persona cargue archivos de tu computadora detrás de escena? – pstanton

+1

@Brian - No, el 'href =" // ... "' tampoco funciona en Firefox, aunque funciona en IE. Casi todo funciona en IE. ('file: //' works, 'file: ///' works, 'file: // \\' works, '//' works, '\\' works, etc.). – hmqcnoesy

Respuesta

3

Como resultado, yo no sabía que tenía esta limitación Firefox/función. Puedo simpatizar con la función, ya que evita que un usuario acceda involuntariamente al sistema de archivos local. Afortunadamente, hay alternativas útiles que pueden proporcionar una experiencia de usuario similar mientras se apega al protocolo HTTP.

Una alternativa para acceder al contenido a través de rutas UNC es publicar su contenido mediante el protocolo WebDAV. Algunos sistemas de administración de contenido, como MS SharePoint, usan WebDAV para proporcionar acceso a documentos y páginas. En lo que respecta a la experiencia del usuario final, se ve y se siente como acceder a los archivos de red con una ruta UNC; sin embargo, todas las interacciones de archivos se realizan a través de HTTP.

Podría requerir un cambio modesto en su filosofía de acceso a archivos, por lo que le sugiero que lea sobre el protocolo WebDAV, la configuración y la gestión de permisos en lo que respecta a su tecnología de servidor específica.

Éstos son algunos enlaces que pueden ser útiles si usted está interesado en aprender más sobre cómo configurar y usar WebDAV en unos pocos servidores principales HTTP:

10

Navegadores como Firefox se niegan a abrir el archivo: // enlace cuando la página HTML principal se sirve con un protocolo diferente como http: //.

Su mejor opción es configurar su servidor web para proporcionar el archivo mapeado de red como un recurso web para que pueda ser accedido por http: // desde el mismo servidor en lugar de por archivo: //.

Como no está claro qué servidor web está utilizando, no puedo detallar cómo lograrlo.

+1

Estoy de acuerdo. Esto es para lo que son los servidores web después de todo. –

+2

El uso de http: // sirve una copia del documento, por lo que el usuario no abre el archivo real. Por lo tanto, si está enlazando un documento que desea que el usuario pueda editar, debe usar file: //. – hmqcnoesy

+1

Si ese es el único propósito, sugeriría echar un vistazo a algo así como Google Documents. – BalusC

1

No sé si esto funcionará, ¡pero pruébalo! Artículo anterior, pero potencialmente útil.

http://www.techlifeweb.com/firefox/2006/07/how-to-open-file-links-in-firefox-15.html

+0

Esto requiere cambios en la configuración del navegador web de todos los visitantes del sitio web. No estoy seguro de si esto es lo que el OP tenía en mente. – BalusC

+0

Ahí es cuando le dices a tu administrador de TI que lo hornee en Firefox en su siguiente compilación de imágenes: P –

+0

Probé esto y pude hacerlo funcionar en Firefox 3.6 con Windows Vista. Lamentablemente, no tengo una forma de actualizar las máquinas de los usuarios así. – hmqcnoesy

11

Esta pregunta se ha realizado al menos dos veces, pero no pude encontrar esas publicaciones antes de publicar la mía (lo siento):

Open a direct file on the hard drive from firefox (file:///)

Firefox Links to local or network pages do not work

He aquí un resumen de las respuestas de los tres mensajes:

  • Uso de WebDAV   — esta es la mejor solución para mí, aunque mucho más complicado de lo que tenía anticipado.
  • Utilice http:// en lugar de file://///   — Esto mostrará una copia del documento que el usuario no puede editar ni guardar.
  • Editar user.js en el cliente como se describe here   — esto funcionó para mí en Firefox 3.6.15, pero sin acceso a máquinas cliente, no es una solución.
  • En Firefox, utilice about: config, cambie el ajuste a Security.fileuri.strict_origin_policy falsa   — esto no funciona para mí en 3.6.15. Otros usuarios en [SO] también informaron que no funciona.
  • Utilice los locallinks extensión Firefox   — esto establece la Security.fileuri.strict_origin_policy de verdad para ti, y no parece tener ningún otro efecto.
  • Lea el archivo del lado del servidor y envíelo como respuesta   — esto presenta el mismo problema que simplemente configurar su servidor web para usar http://.
+0

'security.fileuri.strict_origin_policy = false' ni la actualización' user.js'/'prefs.js' funciona para FF 26 (si se usa para referencia de CSS local) –

+1

@AndreasDietrich La solución' prefs.js' [funciona de nuevo ] (http://superuser.com/a/1060550/515869) – ederag

+0

@ederag thx - esta retroalimentación debería ser generalmente valiosa - Estoy trabajando con un servidor HTTP local en ejecución que sirve los archivos en este momento y, lamentablemente, estoy obligado a FF 26 para probar/desarrollar aplicaciones GWT (razones de compatibilidad/soporte del modo dev) –

5

En Firefox para abrir File:\\\\\yourFileServer\docs\doc.txt por ejemplo que necesita para activar algunas opciones de configuración en Firefox:

user_pref("capability.policy.policynames", "localfilelinks"); 
user_pref("capability.policy.localfilelinks.sites", "http://yourServer1.companyname.com http://yourServer2.companyname.com"); 
user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess"); 
+0

no funciona para FF 26 (si se usa para referencia CSS local) –

+0

Esta característica ha sido [restaurada] (https://bugzilla.mozilla.org/ show_bug.cgi? id = 995943 # c158). (marcado en Firefox 45) – ederag

Cuestiones relacionadas