Как работает 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() . Эта последняя деталь, возможно, не описана явно в документации, вы можете указать проблему в трекер- проблеме с пирамидой, если вы сильно это чувствуете.

  • ищет быстрый способ вычисления парных расстояний многих строк
  • Как я могу реализовать функциональные возможности сокращения в Python's heapq?
  • Использование Python Fabric без инструмента командной строки (fab)
  • Где я могу поместить код очистки в приложение Flask?
  • Максимальное значение pop из питона heapq, есть ли максимальная куча в Python?
  • Как выполнить цикл с помощью цикла for?
  • Декартово произведение словаря списков
  • Найти функции, явно определенные в модуле (python)
  • Изменить Python / PIP для автоматической установки модулей при невозможности импорта
  • Генерация звука / синтез с помощью python?
  • Можно ли обслуживать несколько клиентов, используя только флажок app.run () как автономный?
  • Python - лучший язык программирования в мире.