在本地运行我的网站时(通过yesod devel
),样式加载并且一切都很好。
CSS文件正确加载。使用此method
但是当上传到我的amazon ec2服务器时,样式没有正确加载。
我正在使用侦听端口80的nginx,然后将其重定向到我的yesod webapp正在运行的端口3000。我的nginx.conf设置。
所以我可以直接到header.css显示静态文件传递给用户浏览器。但是,由于某种原因,CSS没有正确连接。
我注意到的另一件事是,如果我直接转到IP和端口3000,默认的favicon.ico
图标将会加载,而如果我转到域,它将无法加载。
有什么想法吗?
答案 0 :(得分:1)
config / settings.yml 中的 approot 设置是否与您用于访问ec2服务器的网址的开头一致?您显示的日志当然可以解释为错误。 Yesod使用 approot 作为前缀构建完全限定的URL,用于构建页面所需的所有其他部分。 (检查页面来源以查看Yesod生成的内容。)
如果您现在正在使用 yesod devel 运行, approot 设置将是“开发”环境的设置 - 这将是“如果您保留 settings.yml 的结构,则默认为“部分”,就像您创建脚手架网站时一样。
答案 1 :(得分:0)
在您的nginx.conf文件中发现没有严重错误。
我点击了http://www.finance-web.biz/static/css/header.css,结果很好。
/*!
* Extra header style
*/
.beta {
color: #CC3300;
}
也许这是在您的浏览器中缓存的内容。