Обходной путь для href = "file: ///// ..." в Firefox - PullRequest
20 голосов
/ 15 марта 2011

Допустим, на сайте в интрасети я хочу связать файл с общим ресурсом с помощью UNC по адресу:

\\servername\foldername\filename.rtf

Кажется, правильный способ сделать это с разметкой, подобной этой:

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

Это пять слэшей - два для протокола, один для обозначения корня файловой системы, затем еще два для указания начала имени сервера.

Это хорошо работает в IE7, но в Firefox 3.6 это будет работать только в том случае, если HTML-файл из локального файла. Я не могу заставить его работать, когда файл приходит с веб-сервера. Ссылка "мертвая" - нажатие на нее ничего не делает.

Есть ли обходной путь для этого в Firefox? Эти два браузера должны быть всем, о чем я должен сейчас беспокоиться.

Поскольку это, очевидно, особенность Firefox, а не ошибка, может кто-нибудь объяснить, в чем преимущество предотвращения ссылки такого типа?

Ответы [ 5 ]

13 голосов
/ 17 марта 2011

Этот вопрос задавался, по крайней мере, два раза раньше, но я не смог найти эти сообщения перед тем, как отправлять свои собственные (извините):

Открыть прямой файл на жестком диске из 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://.
11 голосов
/ 15 марта 2011

Браузеры, такие как Firefox, отказываются открывать ссылку file: //, когда сама родительская HTML-страница обслуживается с использованием другого протокола, например http: //.

Лучше всего настроить веб-сервер на предоставлениесетевой сопоставленный файл как веб-ресурс, так что к нему можно получить доступ по http: // с того же сервера, а не по файлу: //.

Поскольку неясно, какой веб-сервер вы используете, я не могуПодробнее о том, как этого добиться.

6 голосов
/ 26 октября 2012

Например, в 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");
4 голосов
/ 16 марта 2011

Как оказалось, я не знал, что у Firefox было это ограничение / функция. Я могу посочувствовать этой функции, так как она предотвращает непреднамеренный доступ пользователя к локальной файловой системе. К счастью, есть полезные альтернативы, которые могут обеспечить аналогичный пользовательский интерфейс при соблюдении протокола HTTP.

Одной из альтернатив доступа к контенту по UNC-путям является публикация вашего контента с использованием протокола WebDAV . Некоторые системы управления контентом, такие как MS SharePoint, используют WebDAV для предоставления доступа к документам и страницам. Что касается взаимодействия с конечным пользователем, то это похоже на доступ к сетевым файлам по пути UNC; однако все взаимодействия с файлами выполняются по протоколу HTTP.

Это может потребовать небольшого изменения в вашей философии доступа к файлам, поэтому я предлагаю вам прочитать о протоколе WebDAV, настройке и управлении разрешениями, поскольку это относится к вашей конкретной серверной технологии.

Вот несколько ссылок, которые могут быть полезны, если вы хотите узнать больше о настройке и использовании WebDAV на нескольких ведущих HTTP-серверах:

1 голос
/ 15 марта 2011

Я не знаю, сработает ли это, но попробуйте! Старая статья, но потенциально все еще полезная.

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

...