有些更改只在本地显示,但不在heroku托管的webapp上显示?

时间:2014-08-11 21:29:58

标签: python heroku flask

我在html中更改了标题并添加了一个favicon,这些更改只在本地显示。即使我更新了一些文本("测试1 2 3"如图所示),也会发生这种情况:

enter image description here

然而,当我更新到github并推送到heroku时,我发生了文本更改("测试1 2 3")但标题和favicon不会显示:

enter image description here

我也在使用隐身模式,因此它不会成为缓存的问题,我在Firefox上遇到同样的问题,因此它无法成为浏览器。问题是什么?

以下是我的HTML代码的一部分:

  <html>
  <link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
    <head>
         <title>
            Opal Kale
         </title>
        <meta name="description" content="Senior at Cal studying CS. Welcome to my personal homepage.">
        <meta name="keywords" content="Opal Kale">
        <link href='{{url_for('static', filename='style.css')}}' rel='stylesheet' type='text/css' />
        <link href='http://fonts.googleapis.com/css?family=Codystar:300,400' rel='stylesheet' type='text/css'>
    </head>
    <body id='home'>

2 个答案:

答案 0 :(得分:1)

网站上的源代码表明html正文正在一个指向heroku服务器的标记中呈现。所以正在渲染正确的身体。但是呈现的标题是标题。

您编写的标题和favicon正在框架中的标记中呈现,但外部没有favicon或标题标记,而这正是浏览器正在阅读的标记。

我不确定是什么原因引起了这种情况,但您的DNS /托管设置可能是应该受到责备的。

答案 1 :(得分:1)

要扩展Kapil所说的内容,这根本不是您的代码的问题,而是您的域名托管服务商。您在一家公司注册了您的域名,但您的Heroku应用程序在另一个域名上运行。

您正在使用cloaked redirection将您的网址指向Heroku。这意味着您的域名注册商不会进行任何DNS更改,而只是创建一个页面,其中包含一个显示其他网址内容的框架。

如果你卷曲页面,你可以看到它:

>> curl http://www.opalkale.com/ 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=UTF-8'>
<meta name="VERSION" content="">
<meta name="DATA" content="fwdnode7-bl.web-hosting.com (162.255.119.4)">
<title></title>
</head>
<frameset rows='100%, *' frameborder=no framespacing=0 border=0>
<frame src="http://glacial-mesa-9513.herokuapp.com/" name=mainwindow frameborder=no framespacing=0 marginheight=0 marginwidth=0></frame>
</frameset>
<noframes><h2>Your browser does not support frames. We recommend upgrading your browser.</h2><br><br>
<center>Click <a href="http://glacial-mesa-9513.herokuapp.com/" >here</a> to enter the site.</center>
</noframes>
</html>

这种方法有效,但这是一种非常便宜的方法。您的注册商不知道该其他页面的内容是什么,因此这就是为什么标题,图标和其他任何内容都无法正常显示的原因。

正确的做法是让您的域名注册商point the URL at heroku's servers using DNS,但许多免费域名注册商都不会这样做。