gpt4 book ai didi

python - 当我通过计算机的 IP 地址访问我的 Pyramid 应用程序时,为什么没有加载静态 Assets ?

转载 作者:太空宇宙 更新时间:2023-11-04 01:36:41 25 4
gpt4 key购买 nike

我有一个 Pyramid 应用程序,我一直在通过 http://localhost:6543 在本地开发和查看,这是粘贴文档所建议的。 static 目录中有各种资源,例如 .css 文件,我通过 config.add_static_view('static','static ') 当我通过 localhost 查看它时,一切正常,我的 .css 文件已加载,一切正常。但是,当我通过计算机的主机名/IP 地址查看应用程序时,静态 Assets 未加载。

新安装的 Pyramid 贴纸脚手架显示相同的行为。我已经通过名为 viewing the application 的步骤完成并遵循了 Pyramid 叙述文档。 ,并且一切都按照描述进行。但是将地址栏中的 URL 从 http://localhost:6543 更改为 http://my.host.name:6543 并且样式表没有得到加载。

Assets 可用;在新创建的 Pyramid 粘贴脚手架上键入 http://my.host.name:6543/static/pylons.css 可以读取 css 的内容,但在 root 时不会加载页面已加载。 Firebug 表示已请求这些资源,但从未收到。

这是怎么回事,当我通过 localhost 以外的方式请求它们时,如何确保加载我的静态 Assets ?

编辑以添加一些代码。这是来自 Pyramid starter paster 脚手架,我没有修改它,它表现出与我的应用程序相同的行为;它可以被认为是一个最小的例子。

来自包的__init__.py:

def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
"""
config = Configurator(settings=settings)
config.add_static_view('static', 'static', cache_max_age=3600)
config.add_route('home', '/')
config.scan()
return config.make_wsgi_app()

完整的views.py:

from pyramid.view import view_config

@view_config(route_name='home', renderer='templates/mytemplate.pt')
def my_view(request):
return {'project':'TestProject'}

templates/mytemplate.pt 中的相关行:

<link rel="stylesheet" href="/static/pylons.css" type="text/css" media="screen" 
charset="utf-8" />

其中static/pylons.css在根目录下的static目录下。

同样,在浏览器 (FF10) 中打开 http://0.0.0.0:6543 工作正常,http://my.host.name:6543 显示没有样式信息的页面;但是 http://my.host.name:6543/static/pylons.css 给了我样式表文本。

最佳答案

如果不能查看您的代码,则很难回答这个问题。基于类似的经验,我的猜测是您可能没有在模板中使用 static_url 方法。下面是在模板中引用静态资源的另一种方式:

<link rel="stylesheet" href="${request.static_url('app:static/css/app.css')}">

你在用吗?使用其他任何东西肯定会导致您看到的行为。

如果应用程序安装到不是文档路径的路径,似乎会出现问题。你可以看到这个讨论 here .

关于python - 当我通过计算机的 IP 地址访问我的 Pyramid 应用程序时,为什么没有加载静态 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9084455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com