Обходной путь для href= "file://///..." в Firefox
На сайте интрасети позвольте мне сказать, что я хочу связать файл с общим ресурсом с помощью UNC, по адресу:
\\servername\foldername\filename.rtf
Кажется, правильный способ сделать это с помощью разметки следующим образом:
<a href="file://///servername/foldername/filename.rtf">filename.rtf</a>
Это пять косых черт - два для протокола, один для указания корня файловой системы, а затем еще два, чтобы указать начало имени сервера.
Это отлично работает в IE7, но в Firefox 3.6 он будет работать, только если html - из локального файла. Я не могу заставить его работать, когда файл поступает с веб-сервера. Ссылка "мертвая" - щелчок на ней ничего не делает.
Есть ли обходной путь для этого в Firefox? Эти два браузера должны быть все, о чем мне нужно сейчас беспокоиться.
Так как это, очевидно, функция Firefox, а не ошибка, может кто-нибудь объяснить, в чем преимущество заключается в предотвращении такого типа ссылки?
Ответы
Ответ 1
Как оказалось, я не знал, что Firefox имеет это ограничение/функцию. Я могу сочувствовать этой функции, так как она мешает пользователю невольно получать доступ к локальной файловой системе. К счастью, есть полезные альтернативы, которые могут обеспечить аналогичный пользовательский интерфейс при использовании протокола HTTP.
Одной из альтернатив доступу к контенту через UNC-пути является публикация вашего контента с использованием протокола WebDAV. Некоторые системы управления контентом, такие как MS SharePoint, используют WebDAV для обеспечения доступа к документам и страницам. Что касается опыта конечного пользователя, он выглядит и чувствует себя так же, как доступ к сетевым файлам с UNC-путём; однако все взаимодействия с файлами выполняются через HTTP.
Это может потребовать скромного изменения в философии доступа к файлу, поэтому я предлагаю вам прочитать о протоколе, конфигурации и разрешении WebDAV, относящемся к вашей конкретной серверной технологии.
Вот несколько ссылок, которые могут быть полезны, если вам интересно узнать больше о настройке и использовании WebDAV на нескольких ведущих серверах HTTP:
Ответ 2
Этот вопрос задавали как минимум два раза раньше, но я не смог найти эти сообщения, прежде чем публиковать свои собственные (извините):
Откройте прямой файл на жестком диске из firefox (файл:///)
Ссылки Firefox на локальные или сетевые страницы не работают
Вот краткое изложение ответов из всех трех сообщений:
- Использовать WebDAV — это лучшее решение для меня, хотя и гораздо более активное, чем я ожидал.
- Используйте
http://
вместо file://///
— это будет копировать документ, который пользователь не может редактировать и сохранять.
- Отредактируйте user.js на клиенте, как описано здесь — это работало для меня в Firefox 3.6.15, но без доступа к клиентским машинам это не решение.
- В Firefox используйте about: config, измените параметр
Security.fileuri.strict_origin_policy
на false — это не работает для меня в 3.6.15. Другие пользователи в [SO] также сообщили, что они не работают.
- Используйте расширение locallinks Firefox — это устанавливает для
Security.fileuri.strict_origin_policy
значение true для вас и не имеет другого эффекта.
- Прочитайте файл-сервер и отправьте его как ответ — это создает ту же проблему, что и просто настройка веб-сервера для использования
http://
.
Ответ 3
Браузеры, такие как Firefox, отказываются открывать файл://link, когда сама родительская страница HTML обслуживается с использованием другого протокола, например http://.
Лучше всего настроить ваш веб-сервер для предоставления сетевого сопоставленного файла в качестве веб-ресурса, чтобы к нему можно было получить доступ по http://с того же сервера, а не по файлу://.
Поскольку он неясно, какой веб-сервер вы используете, я не могу подробно рассказать о том, как достичь этого.
Ответ 4
В Firefox для открытия File:\\\\\yourFileServer\docs\doc.txt
например, вам нужно включить некоторые параметры в конфигурации 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");
Ответ 5
Я не знаю, будет ли это работать, но дайте ему шанс! Старая статья, но потенциально все еще полезна.
http://www.techlifeweb.com/firefox/2006/07/how-to-open-file-links-in-firefox-15.html