为了为我的Web项目提供样式表,图像和JavaScript文件,我为Pyramid的static文件夹创建了一些子目录,如下所示:

myproject/static/
├── css
│   └── overwrite.css
├── img
├── js
├── pyramid-16x16.png
├── pyramid.png
├── theme.css
└── theme.min.css


但是,使用Pyramid Cookbook中所述的Pyramid特定的config.add_xyz_view方法会针对所有这三个命令提高AttributeErrors,如下所示:


  python3.4 / site-packages / pyramid / config / init.py“,第793行,在
  getattr
          引发AttributeError(name)
  
  AttributeError:add_images_view


或等同于CSS


  AttributeError:add_stylesheets_view


和js


  AttributeError:add_javascript_view


目前,我正在使用一种变通方法,它看起来像是一种魅力(请参阅下面的代码中的注释)。

由于我是使用Pyramid的初学者,因此可以使用此替代方法。但是,我想了解这些错误的原因。

该项目的__init__.py如下所示:

from pyramid.config import Configurator


def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application."""
    config = Configurator(settings=settings)
    config.include('pyramid_chameleon')
    config.include('pyramid_jinja2')


    config.add_static_view('static', 'static', cache_max_age=3600)

    # raises AttributeError
    # config.add_images_view('img', 'static/img')
    # config.add_stylesheets_view('css', 'static/css')
    # config.add_javascript_view('js', 'static/js')

    # current workaround, works like a charm
    config.add_static_view('img', 'static/img', cache_max_age=3600)
    config.add_static_view('css', 'static/css', cache_max_age=3600)
    config.add_static_view('js', 'static/js', cache_max_age=3600)

    config.add_route('home', '/')
    config.add_route('foo', '/greet')
    config.add_route('bs', '/bs')

    config.scan()
    return config.make_wsgi_app()

最佳答案

打开new issue on Pyramid's GitHub repoSteve Piercy's comment时,发现Pyramid Cookbook中似乎有一个错误,此错误在我对SO resp提出问题后立即得到解决。我在回购上的问题。

所以正确的方法就像我的问题中给出的“解决方法”:

config.add_static_view('img', 'static/img')
config.add_static_view('css', 'static/css')
config.add_static_view('js', 'static/js')

关于python - Pyramid 静态 View (js,img,css):AttributeError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32425388/

10-12 22:26