为了为我的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 repo和Steve 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/