from pyramid.config import Configurator if __name__ == '__main__': with Configurator() as config: config.include("pyramid_mako") config.add_route('home', '/') config.add_route('system', '/system') config.add_static_view(name='static', path='static') config.scan('post_trypyramid_views') app = config.make_wsgi_app() server = make_server('0.0.0.0', 6543, app) server.serve_forever() from pyramid.httpexceptions import HTTPFound, HTTPNotFound from pyramid.response import Response from pyramid.view import view_config @view_config(route_name='home') def home_view(request): return Response('<p>Welcome</p>') @view_config(route_name='system', renderer='post_trypyramid_template.mako') def form_view(request): return {"Nothing": "nothing"} <head> <title>My SANDBOX</title> <meta charset="utf-8"/> </head> <body> <h1>Settings:</h1> <img src="static/system6.jpg" alt="Here you should see an image"> <img src="{{ request.static_url('__main__:static/system6.jpg') }}" alt="Here you should see an image" > </body> </html> Inicio la aplicación en "C:/Users/myAccount/Projects/TryPyramid" pero no se muestra ninguna imagen en la página web, solo el encabezado.
Si reemplazo la llamada "add_static_view ()" anterior con la ruta absoluta como
"config.add_static_view(name='static', path='C:/Users/myAccount/Projects/TryPyramid/static')"
entonces al menos el primer "<img ...>" conduce a una imagen en el navegador.
Entonces, ¿qué hay de malo con mi configuración de ruta relativa? ¿O qué más echo de menos?
He intentado todo tipo de modificaciones, como barras inclinadas al final o al principio. Nada ayudó
Cualquier pista bienvenida. Gracias.
Está utilizando la sintaxis de Jinja2 en una plantilla de Mako. Aparte, debe usar el nombre del proyecto, no __main__ . Prueba esto:
<img src="${ request.static_url('myproject:static/system6.jpg') }" alt="Here you should see an image" >Si usa pyramid-cookiecutter-starter para crear un proyecto de inicio utilizando Mako como motor de plantillas, puede ver otros ejemplos de cómo crear un proyecto y la sintaxis adecuada. Consulte la documentación para obtener un tutorial .