在服务器上实现时不加载样式

时间:2013-03-28 11:22:26

标签: nginx amazon-ec2 webserver yesod

在本地运行我的网站时(通过yesod devel),样式加载并且一切都很好。 CSS文件正确加载。使用此method

但是当上传到我的amazon ec2服务器时,样式没有正确加载。

我正在使用侦听端口80的nginx,然后将其重定向到我的yesod webapp正在运行的端口3000。我的nginx.conf设置。

enter image description here

所以我可以直接到header.css显示静态文件传递给用户浏览器。但是,由于某种原因,CSS没有正确连接。

我注意到的另一件事是,如果我直接转到IP和端口3000,默认的favicon.ico图标将会加载,而如果我转到域,它将无法加载。 有什么想法吗?

2 个答案:

答案 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;
}

也许这是在您的浏览器中缓存的内容。