Как работает add_static_view Pyramid?

Как работает add_static_view (имя, путь) в Pyramid?

Из документа:

«Аргумент name – это строка, представляющая префикс локального URL-адреса приложения. Он может попеременно быть полным URL-адресом. Аргумент path – это путь на диске, где находятся статические файлы. Это может быть абсолютный путь, относительный путь к пакету , или спецификацию активов ".

Как-то у меня сложилось впечатление, что это описание не очень точное.

Если я добавлю код по строкам

 config.add_static_view("static", "/path/to/resource/on/filesystem") 

и я посещаю

 http://localhost:PORT/static/logo.png 

Я вижу логотип.png, учитывая, что его можно найти в

 /path/to/resource/on/filesystem/ 

Теперь, если у меня есть код вроде следующего

 config.add_static_view("http://myfilehoster.com/images", "myproject:images") 

описание, что «аргумент path – это путь на диске, где находятся статические файлы», больше не кажется точным, потому что фактические файлы находятся на диске myfilehoster. Мне кажется, что я просто регистрирую какой-то идентификатор (myproject: images), который я могу использовать в своем программном коде, чтобы ссылаться на «реальное» местоположение «http://myfilehoster.com/images». Например

 request.static_url("myproject:images/logo.png") 

будет разрешено «http://myfilehoster.comhttp://img.rupython.com/pythonlogo.png».

Таким образом, документация неточна или я чего-то не хватает?

One Solution collect form web for “Как работает add_static_view Pyramid?”

Вам что-то не хватает. В описательной документации по статическим активам говорится:

Вместо представления префикса URL аргумент имени вызова add_static_view() может быть альтернативным URL . Каждый из примеров, которые мы видели до сих пор, показал использование аргумента name в качестве префикса URL. Однако, когда name является URL-адресом , статические активы могут обслуживаться с внешнего веб-сервера. В этом режиме name используется как префикс URL-адреса при создании URL-адреса с помощью pyramid.request.Request.static_url() .

В документации API используется аналогичная формулировка:

Когда add_static_view вызывается с аргументом name который представляет префикс URL, как он выше, последующие вызовы pyramid.request.Request.static_url() с путями, которые начинаются с аргумента path переданного в add_static_view , генерируют URL-адрес, похожий на http://<Pyramid app URL>http://img.rupython.com/pythonlogo.png , что приведет к тому, что файл logo.png в подкаталоге mypackage пакета mypackage будет обслуживаться.

Использование URL- add_static_view полностью add_static_view поведение add_static_view , а аргумент path интерпретируется как символический путь только для .static_url() . Эта последняя деталь, возможно, не описана явно в документации, вы можете указать проблему в трекер- проблеме с пирамидой, если вы сильно это чувствуете.

  • Как расширить симпатичный модуль печати на таблицы?
  • Поставщик услуг SAML 2.0 в Python
  • Что означает `{...}` в выводе вывода переменной python?
  • Исправить недопустимый полигон | Python Shapely
  • Не удается заставить бутылку работать на эластичном бобовом стебле
  • Дизайн хеш-таблицы Python
  • Flask, продолжайте получать 404 статических файлов, используя send_static_file
  • Установка фиксированного размера для точек в легенде
  • Python - лучший язык программирования в мире.