web-dev-qa-db-fra.com

La bonne façon de définir <a href=""> lorsqu'il s'agit d'un fichier local

J'essaie de créer un lien vers un fichier local. J'ai défini href comme suit:

<a href="file://C:/path/to/file/file.html">Link Anchor</a>
  • Dans Firefox, lorsque je fais un clic droit et "ouvre le lien dans un nouvel onglet", rien ne se passe.

  • Lorsque je clique avec le bouton droit de la souris et "copie l'emplacement du lien", puis ouvre manuellement un nouvel onglet et colle le lien copié, cela fonctionne très bien. Il semble donc que mon file:// la syntaxe est correcte. Je l'ai également essayé avec 3 barres obliques comme file:/// mais c'est le même résultat.

Qu'est-ce que je fais mal?

18
sameold

Organisez vos fichiers dans des répertoires hiérarchiques, puis utilisez simplement des chemins relatifs.

Démo:

HTML (index.html)

<a href='inner/file.html'>link</a>

Structure du répertoire:

base/
base/index.html
base/inner/file.html
....
9
Petar Sabev

Par définition, les URL file: dépendent du système et ont peu d’utilité. Une URL comme dans votre exemple fonctionne lorsqu'elle est utilisée localement, c'est-à-dire que la page de liaison elle-même se trouve sur l'ordinateur de l'utilisateur. Mais les navigateurs refusent généralement de suivre les liens file: sur une page qu'il a récupérée avec le protocole HTTP, de sorte que l'URL de la page est une URL http :. Lorsque vous cliquez sur un tel lien, rien ne se passe. Le but est vraisemblablement la sécurité: pour empêcher une page distante d'accéder aux fichiers de l'ordinateur du visiteur. (Je pense que cette fonctionnalité a d'abord été implémentée dans Mozilla, puis copiée sur d'autres navigateurs.)

Donc, si vous travaillez avec des documents HTML sur votre ordinateur, les URL de fichier: devraient fonctionner, bien qu'il y ait des problèmes liés au système dans leur syntaxe (comment vous écrivez les noms de chemin et les noms de fichier dans une telle URL).

Si vous avez vraiment besoin de travailler avec un document HTML sur vos ordinateurs et un autre document HTML sur un serveur Web, la façon de faire fonctionner les liens est d'utiliser le fichier local comme principal et, si nécessaire, d'utiliser des scripts côté client pour récupérer le document du serveur,

9
Jukka K. Korpela

La valeur href à l'intérieur de la balise de base deviendra votre point de référence pour tous vos chemins relatifs et remplacera ainsi votre valeur de chemin de répertoire actuelle sinon - le "~" est la racine de votre site

    <head>
        <base href="~/" />
    </head>
3
Jenna Leaf

Cela peut se produire lorsque vous exécutez IIS et que vous exécutez la page html à travers elle, puis le Local file system ne sera pas accessible.

Pour que votre lien fonctionne localement, exécutez la page HTML appelante directement depuis le navigateur de fichiers et non Visual Studio F5 ou IIS cliquez simplement dessus pour l'ouvrir depuis le système de fichiers et assurez-vous que vous utilisez le lien comme ceci:

<a href="file:///F:/VS_2015_WorkSpace/Projects/xyz/Intro.html">Intro</a>
1
Ashraf Abusada

../htmlfilename avec .html L'utilisateur peut le faire Cela résoudra votre problème de redirection vers une page pour les fichiers locaux.

0
Priyanka Davle