uniforme una resource recursos que name identificador error archivos file uri relative-path url-scheme file-uri

file - una - uri y url wikipedia



Archivo Uri Scheme y archivos relativos (4)

Supongamos que el esquema para un uri es "archivo". Supongamos también que el camino comienza con ''.''

Un ejemplo de ruta es ''./.bashrc''. ¿Cómo se vería el Fulluri? ''file: //./.bashrc'' me parece extraño.


En resumen, una URL de archivo toma la forma de:

file://localhost/absolute/path/to/file [ok]

o puede omitir el host (pero no la barra):

file:///absolute/path/to/file [ok]

pero no esto:

file://file_at_current_dir [no way]

ni esto:

file://./file_at_current_dir [no way]

Acabo de confirmarlo a través de urllib2.urlopen de Python ()

Más detalles de http://en.wikipedia.org/wiki/File_URI_scheme :

"file:///foo.txt" is okay, while "file://foo.txt" is not, although some interpreters manage to handle the latter


En un terminal, puede escribir "file: //$PWD/.bashrc" usando "$ PWD" para referirse al directorio actual.


Es imposible utilizar el archivo completo: URI con ''.'' o ''..'' segmentos en la ruta sin parte raíz de esa ruta. Ya sea que use ''file: //./.bashrc'' o ''file: ///./.bashrc'', estas rutas no tendrán sentido. Si desea usar un enlace relativo, úselo sin la parte de protocolo / autoridad:

<a href="./.bashrc">link</a>

Si desea utilizar un URI completo, debe indicarle a un usuario raíz respecto de cuál es su ruta relativa:

<a href="file:///home/kindrik/./.bashrc">link</a>

De acuerdo con RFC 3986

The path segments "." and "..", also known as dot-segments, are defined for relative reference within the path name hierarchy. They are intended for use at the beginning of a relative-path reference (Section 4.2) to indicate relative position within the hierarchical tree of names. This is similar to their role within some operating systems'' file directory structures to indicate the current directory and parent directory, respectively. However, unlike in a file system, these dot-segments are only interpreted within the URI path hierarchy and are removed as part of the resolution process (Section 5.2). The complete path segments "." and ".." are intended only for use within relative references (Section 4.1) and are removed as part of the reference resolution process (Section 5.2). However, some deployed implementations incorrectly assume that reference resolution is not necessary when the reference is already a URI and thus fail to remove dot-segments when they occur in non-relative paths. URI normalizers should remove dot-segments by applying the remove_dot_segments algorithm to the path, as described in Section 5.2.4. The complete path segments "." and ".." are intended only for use within relative references (Section 4.1) and are removed as part of the reference resolution process (Section 5.2)

RFC 3986 describe incluso un algoritmo para eliminar estos "." y ".." de URI.


No sé tu caso de uso.

Tengo una necesidad similar en mi código de nodo, así que cuando necesito una URL de archivo relativa a mi directorio de trabajo, creo una url como ...

const url = "file://" + process.cwd() + "/" + ".bashrc";