Pyramid: 找不到静态资源
我正在尝试部署一个Pyramid应用程序。我的域名是 wisderm.com。虽然HTML页面已经加载出来了,但静态资源(比如css、js、图片和字体)却没有显示。
在我的 /etc/nginx/sites-enabled/default
文件中,我根据 这个教程 设置了静态文件的位置,如下所示:
location /static {
root /home/SkinProject;
# this path + /skinproject/static is the absolute
# path to my static directory
expires 30d;
add_header Cache-Control public;
access_log off;
}
在我的 __init__.py
文件中,我添加了一个静态视图:
config.add_static_view('static', 'static', cache_max_age=3600)
在我的HTML模板中,我尝试了两种方式来加载静态资源:
<link href="{{request.static_url('skinproject:static/css/<mycssfile>)}}">
一种是用于CSS文件,另一种是像 /static/images/products/product_name/01.jpg
这样的相对网址,用于其他所有资源。
但是这两种方式都不管用。在Chrome开发者工具的网络选项卡中,所有文件的状态码都是 404 Not Found
,意思是找不到文件。
我查看了 关于静态文件的Cookbook页面,但似乎内容已经过时了。我还查阅了 关于静态资源的官方文档,但我对是否需要为每个静态目录注册单独的静态视图感到困惑,比如:
config.add_static_view(name='http://wisderm.com/images', path='skinproject:static/images')
config.add_static_view(name='http://wisderm.com/css', path='skinproject:static/css')
那么,正确的做法是什么呢?
1 个回答
2
我本来不想自己回答自己的问题,但我把 /static
改成了 /static/
,并且把所有静态链接都改成了相对链接,这样就解决了我的问题。