Firefox Ссылки на локальные или сетевые страницы не работают

У меня есть приложение .asp, в котором файлы изображений (.PDF) хранятся в каталоге (загружаемом копировальным устройством / сканером). Созданные имена файлов хранятся в таблице базы данных. Когда запрос запускается с веб-страницы, создается ссылка на файл. При нажатии изображение должно отображаться. Эта функция работает на 100% в Internet Explorer. В Firefox нет такой удачи (а у меня есть несколько пользователей Firefox). Созданная гиперссылка выглядит так file://Server/Scanner/XYZ.pdf

Firefox помогает предположить, что причина в следующем:

Ссылки на локальные или сетевые страницы не работают. В качестве меры безопасности Firefox запрещает сайтам в Интернете ссылаться на файлы, которые хранятся в вашей локальной вычислительной среде. Эти файлы могут включать файлы на вашем компьютере, подключенные сетевые диски и сетевые пути UNC.

Кажется, что ни одно из предложений по обходному пути не работает (или я не понимаю, как создать отображение изображения). Есть предложения?


person Joe    schedule 10.10.2008    source источник
comment
В данный момент у меня нет доступа к другому серверу, но на локальном ресурсе мое решение работает.   -  person alexandrul    schedule 11.10.2008
comment
2014-04-14 (FF29) bugzilla.mozilla.org/show_bug.cgi? id = 995943 # c5 мы удалили всю подсистему capacity.policy. Так что это больше не сработает.   -  person leo    schedule 17.08.2015


Ответы (10)


Это поведение Firefox по умолчанию, предназначенное для обеспечения безопасности. Вероятно, предполагается, что большинство веб-сайтов не знают, что и где находятся ваши локальные файлы (включая UNC-пути).

Это можно было отключить в firefox:

  • введите "about: config" в адресной строке и примите "я буду осторожен"
  • найдите security.checkloaduri в старых версиях или security.fileuri.strict_origin_policy в новых версиях firefox и измените значение на «false»
  • перезапустить firefox

Это должно сделать это за вас. У вас есть дополнительная информация здесь:

person Marko Dumic    schedule 10.10.2008
comment
Наткнулся на это. По какой-то причине это не работает для меня в Firefox 3.0.12. Когда я наводю указатель мыши на путь в firebug, я вижу миниатюру изображения, поэтому я знаю, что путь правильный. Что еще это может быть? - person Scott; 28.02.2011
comment
Вы уверены, что это все еще работает? Я следовал вашим инструкциям в firefox 13.0.1 (linux) и 13.0 (windows). Консоль ошибок по-прежнему выдает ошибку безопасности: ответ Content at <url> may not load or link to file:///<unc> @ alexandrul работает. - person Sebastian; 29.06.2012
comment
@Sebastian: В 2008 году это сработало. Насчет нынешнего Firefox я не уверен. - person Marko Dumic; 29.06.2012

Firefox> = 68.0.1

Я могу предварительно просмотреть в Firefox как изображения, так и файлы PDF со ссылками на локальные файлы, используя указанные здесь настройки: https://bugzilla.mozilla.org/show_bug.cgi?id=1303727

Я использовал ссылки с локальным файлом: <a href="file://N:/path/to/file.ext">test</a>

и добавил в user.js указанные настройки (со списком скорректированных сайтов):

user_pref ("возможность.policy.policynames", "localfilelinks"); user_pref ("capacity.policy.localfilelinks.sites", "http://my.intranet"); user_pref ("capacity.policy.localfilelinks.checkloaduri.enabled", "allAccess");

Кроме того, при настройке Firefox на «Всегда запрашивать» для файлов PDF я смог «Открыть с помощью» PDF-файла в Adobe Acrobat Reader DC, который сообщал ожидаемую локальную папку при доступе к «Файл -> Свойства».


Firefox> = 1.5.x ‹20 (иш)

Найдите папку профиля Firefox на жестком диске, например (12345678 означает восемь случайных цифр и букв):

  • Windows: "C: \ Documents and Settings \ Имя пользователя \ Application Data \ Mozilla \ Firefox \ Profiles12345678.default \"
  • Linux: "/home/username/.mozilla/firefox/12345678.default/"
  • OS X: / Имя пользователя / Библиотека / Поддержка приложений / Firefox / Профили / 12345678.default /

В этой папке создайте текстовый файл с именем user.js. Напишите в этот текстовый файл следующую строку:

user_pref("capability.policy.default.checkloaduri.enabled", "allAccess");

Работает на моем ПК (Firefox 3.0.3 и 19.0 beta) со следующими ссылками:

  • <img src="file://///server/share/image.png" />
  • <img src="file://\\\server\share\image.png" />
  • <img src="file://d:\image.png" />
  • <img src="file:///d:\image.png" />
  • <img src="file://d:/image.png" />
  • <img src="file:///d:/image.png" />
  • <img src="file://localhost/d:/image.png" />

Кроме того, если вы используете надстройку NoScript, установите флажок Дополнительно \ Trusted \ Разрешить локальные ссылки.

person alexandrul    schedule 10.10.2008
comment
Это то же самое, что и ответ Марко Думича, но его проще для конечного пользователя, а этот проще (возможно, не лучше) для внешнего приложения. - person sep332; 17.11.2008
comment
Ответ Марко Думича не сработал в моем случае (Firefox 3.0.3 + Windows Server 2003 R2 SP2). - person alexandrul; 18.11.2008
comment
@MarkBerry только что протестировал: он работает и в бета-версии Firefox 19: D - person alexandrul; 19.02.2013
comment
@machineghost, не могли бы вы попробовать еще раз? - person alexandrul; 02.08.2019
comment
Рассматривая этот вопрос, я думаю, что то, что я делаю, может отличаться в ключевом смысле. Я использую 68.0 Firefox, Linux. Я сделал ~/.mozilla/firefox/someletters.default/user.js, добавил эту строку, запустил $('body').append('<img src="file:///someLocalFile.png" />') в консоли и ... ничего не увидел на странице. Но если я заменю someLocalFile.png удаленным файлом, я действительно увижу добавленное изображение. Также, если я перейду непосредственно к локальному файлу, он будет работать. Я просто не вижу локальные файлы на нелокальных страницах ... даже с этим изменением pref, которое, как я думал / надеялся, исправит. Но на самом деле я не занимаюсь ссылками, извините. - person machineghost; 02.08.2019
comment
@machineghost нужно добавить 3 строки, одна из которых указывает список разрешенных доменов; создание html-контента с помощью консоли теперь может быть именно тем поведением, которое ожидается для этого механизма. - person alexandrul; 03.08.2019

Прочитав приведенное здесь решение, я перешел по ссылке Ссылки на локальные страницы не работают, и у меня только это сработало (я Я использую wordpress для личного FAQ по локальной установке wamp):

  • Перейдите в "% Your Documents & Settings% \ Application Data \ Mozilla \ Firefox \ Profiles \% your profile% \"
  • отредактируйте файл "prefs.js"
  • добавьте следующие строки в конец документа:

.

user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");
user_pref("capability.policy.localfilelinks.sites", "http://localhost");
user_pref("capability.policy.maonoscript.javascript.enabled", "allAccess");

Вы можете оставить для параметра security.checkloaduri значение по умолчанию, а также для параметра security.fileuri.strict_origin_policy. Благодаря этим трем строкам вы просто делаете исключение для своего локального сервера.

Будьте осторожны, если вам нужно вернуться к этому файлу prefs.js, обратите внимание, что Firefox упорядочит его в алфавитном порядке. Итак, 3 строки, которые вы добавите в конце, будут где-то в начале;).

person Nicolas C.    schedule 07.06.2012
comment
Я думаю, вы пропустили определение политики localfilelinks (см. mozilla.org/projects/ security / components / ConfigPolicy.html) user_pref("capability.policy.policynames", "localfilelinks"); - person Micha Wiedenmann; 29.01.2013
comment
Что делает строка maonoscript? Или это должно было быть policynames, как предполагает Миша? - person Mark Berry; 19.02.2013

Вы можете загрузить надстройку LocalLink FireFox, которая позволяет щелкнуть правой кнопкой мыши локальную ссылку и выбрать «Открыть в окне переднего плана». Другие пункты меню «Открыть ...» должны работать, но не для меня.

http://locallink.mozdev.org/

Кроме того, вы можете использовать NoScript, как предлагает Алекс, который позволяет нормально щелкать локальные ссылки. Спасибо, Алекс.

person Gordon Bell    schedule 11.11.2008

Решение Марко должно работать для ссылок, которые также находятся в локальной файловой системе, но я не думаю, что оно должно позволять странице http: // ссылаться на страницу file: //.

Проблема для людей, переходящих по ссылкам со страниц http: //, обсуждается здесь: http://kb.mozillazine.org/Links_to_local_pages_do_not_work вместе с объяснением, как его обойти и подвергнуть себя риску.

person Richard    schedule 30.06.2010

Вместо этого вы можете прочитать файл с диска, а затем отправить его в ответе со своей страницы.

См. Пример по этой ссылке.

person Geoff    schedule 10.10.2008
comment
см. ссылку в моем ответе. У них есть блок исходного кода, который показывает, как это сделать. Файл ответов Google asp, и вы найдете больше примеров. - person Geoff; 10.10.2008
comment
Это сработало !!! Спасибо. Fyi все решения, которые пытались изменить настройку браузера, не работали - person Joe; 10.10.2008
comment
К вашему сведению - пример работает, но будет извлекать файлы только на том же сервере ... функция OPEN_FILE не работает, если файлы находятся на внешнем сервере. - person Joe; 10.10.2008

Тонны благодарности Я искал это решение несколько месяцев,

:: Это сработало ::

Это можно было отключить в firefox:

* type "about:config" in the address bar and accept "i'll be careful"
* find "security.checkloaduri" in older versions or "security.fileuri.strict_origin_policy" in newer versions of firefox and change the value to "false"
* restart firefox

::::

person sunny    schedule 22.12.2009

не следует ли вам действительно хранить страницы в каталоге вашего приложения и ссылаться на них таким образом. http://SITENAME/Server/scanner/XYZ.pdf.

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

Наконец, firefox гораздо более аналитичен в отношении направления косой черты в именах файлов. Убедитесь, что все они - это '/', а не '\'.

Надеюсь это поможет.

person wax eagle    schedule 10.10.2008
comment
Файлы не находятся в каталоге приложения. Они находятся на отдельном сервере. У меня такая же установка, что и у вас. Можете ли вы убедиться, что вы можете создавать изображения с помощью Firefox. Если отображается, можете ли вы описать, как вы обошли проверку безопасности, отключающую эту функцию? - person Joe; 10.10.2008
comment
вы можете ссылаться на сервер по IP-адресу? если у вас есть доступ к серверу, вы можете сделать папку, в которой файлы хранятся на веб-сайте в IIS, и получить к ним доступ по IP-адресу сервера. - person wax eagle; 10.10.2008

остерегайтесь несовместимости с gmarks (заменитель панели инструментов google), у меня работали как локальная ссылка, так и менеджер политик; локальная ссылка немного более плавная, диспетчер политик дает вам больше контроля

person Community    schedule 02.04.2009

file://localhost///servername/share/file.txt у меня работает на FF11

(из локального файла HTML: file:///C:/index.html)

person Alex L    schedule 23.04.2012
comment
Конечно, но не из localhost / index.html - person Victor; 02.12.2020