【问题标题】:Styling not loading when implemented on server在服务器上实施时样式不加载
【发布时间】:2013-03-28 11:22:25
【问题描述】:

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

但是当上传到我的亚马逊 ec2 服务器时,样式加载不正确。

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

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

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

【问题讨论】:

    标签: nginx amazon-ec2 webserver yesod


    【解决方案1】:

    config/settings.yml 中的 approot 设置是否与您用于访问 ec2 服务器的 url 开头一致?您显示的日志当然可以用错误来解释。 Yesod 构建完全限定的 url,使用 approot 作为前缀,用于构建页面所需的所有附加部分。 (查看页面源代码,看看 Yesod 产生了什么。)

    如果您现在使用 yesod devel 运行,approot 设置将是“开发”环境的设置 - 这将是“默认值”部分,如果您保持 settings.yml 的结构与创建脚手架站点时的结构相同。

    【讨论】:

    • 谢谢,我已经更改了 config/setting.yml 但仍然无法正常工作。
    • 看起来好像页面中的样式表 url 仍然错误,或者您的前端服务器没有转发对它的访问。我会从页面源码开始,手动按照样式表的url去调试!
    【解决方案2】:

    在您的 nginx.conf 文件中没有发现任何严重错误。

    我打了http://www.finance-web.biz/static/css/header.css,结果很好。

    /*!
     * Extra header style
     */
    
    .beta {
        color: #CC3300;
    }
    

    可能是浏览器中缓存的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-23
      • 2020-12-04
      • 1970-01-01
      • 2015-04-13
      • 2018-10-09
      • 2017-04-11
      • 1970-01-01
      • 2016-07-31
      相关资源
      最近更新 更多