Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以吗;“预生成”;“我的”的所有可能的静态html页面;“动态”;网站?_Html_Ruby On Rails_Search Engine_Generator_Static Html - Fatal编程技术网

我可以吗;“预生成”;“我的”的所有可能的静态html页面;“动态”;网站?

我可以吗;“预生成”;“我的”的所有可能的静态html页面;“动态”;网站?,html,ruby-on-rails,search-engine,generator,static-html,Html,Ruby On Rails,Search Engine,Generator,Static Html,例如,有些网站似乎只提供静态html,尽管它们的内容是动态的 例如,如果我浏览某个类别,我会得到一个指向静态html页面的链接: 现在,如果我应用一个自定义过滤器,我会再次得到一个指向某个似乎是静态html的链接: 这是如何实现的?是否有任何框架可以帮助“预生成”所有可能的动态页面,以便在提供新输入时,页面已经存在(即,静态html已经可用) 背景:我们运行一个小型搜索引擎,搜索房地产报价。优惠由我们的刮板每天更新一次(内容每天都是静态的)。内容可以在RubyonRails网站上搜索。 随着

例如,有些网站似乎只提供
静态html
,尽管它们的内容是动态的

例如,如果我浏览某个类别,我会得到一个指向
静态html
页面的链接:

现在,如果我应用一个自定义过滤器,我会再次得到一个指向某个似乎是
静态html
的链接:

这是如何实现的?是否有任何框架可以帮助“预生成”所有可能的动态页面,以便在提供新输入时,页面已经存在(即,
静态html
已经可用)

背景:我们运行一个小型搜索引擎,搜索房地产报价。优惠由我们的刮板每天更新一次(内容每天都是静态的)。内容可以在RubyonRails网站上搜索。
随着流量的增加,性能成为一个问题。我想知道是否有任何框架/工具可以批量生成我们所有的搜索,这样我们就可以提供
静态html

他们的网站不是动态的。他们使用URL重写(例如,
mod_rewrite
)将输入URL转换为脚本可以满足的请求

例如:

/cat/5666/electric-guitars.html
可能被改写为:

/cat.php?id=5666
测试这一点的一个快速技巧是转到
/cat/5666/foo.html

在这种情况下,使用
.html
很可能是为了隐藏他们的站点上使用了什么样的脚本,这是一种通过模糊性度量的弱安全性


针对您的问题,没有(简单的)方法将所有可能的结果生成为静态HTML文件。你看到的可能是数十亿的排列。如果您遇到性能问题,请查看性能分析、缓存、查询优化等。

他们的站点不是动态的。他们使用URL重写(例如,
mod_rewrite
)将输入URL转换为脚本可以满足的请求

例如:

/cat/5666/electric-guitars.html
可能被改写为:

/cat.php?id=5666
测试这一点的一个快速技巧是转到
/cat/5666/foo.html

在这种情况下,使用
.html
很可能是为了隐藏他们的站点上使用了什么样的脚本,这是一种通过模糊性度量的弱安全性


针对您的问题,没有(简单的)方法将所有可能的结果生成为静态HTML文件。你看到的可能是数十亿的排列。如果您遇到性能问题,请查看性能分析、缓存、查询优化等。

从某种意义上讲,您所描述的是缓存。通过缓存,应用程序仅在页面内容发生更改时才会生成页面(甚至部分页面)。Rails内置了很多缓存功能,您可以根据需要进行调整。首先阅读描述Rails功能以及常见附加组件的。谷歌搜索“Rails 3缓存”-那里有大量的信息。最后,您可以向服务器堆栈中添加进行额外缓存的软件,如Squid和Varnish。有了正确的工具(和研究),你就可以从静态站点中获得95%的好处,而无需手动将站点变成准静态的Frankenapp

从某种意义上讲,您所描述的是缓存。通过缓存,应用程序仅在页面内容发生更改时才会生成页面(甚至部分页面)。Rails内置了很多缓存功能,您可以根据需要进行调整。首先阅读描述Rails功能以及常见附加组件的。谷歌搜索“Rails 3缓存”-那里有大量的信息。最后,您可以向服务器堆栈中添加进行额外缓存的软件,如Squid和Varnish。有了正确的工具(和研究),你就可以从静态站点中获得95%的好处,而无需手动将站点变成准静态的Frankenapp

我终于找到了,它指向了一些可以实现我所寻找的功能的工具。我在这里添加它只是为了将来参考:

“Hyde是一个由Python和Django提供动力的静态网站生成器。Hyde支持所有Django模板标记和过滤器,甚至有自己的一些。内置的web服务器+自动生成器提供即时刷新和无限的灵活性…”

“Jekyll是一个简单的、支持博客的静态网站生成器。它使用包含各种格式的原始文本文件的模板目录,通过Markdown(或Textile)和Liquid转换器运行,并生成一个完整的、随时可发布的静态网站,适合与您喜爱的web服务器一起使用…”

“Blatter是一个创建和发布静态网站的微型工具 基于动态模板构建……”

我终于找到了,它指向了一些可以实现我所寻找的功能的工具。我在这里添加它只是为了将来参考:

“Hyde是一个由Python和Django提供动力的静态网站生成器。Hyde支持所有Django模板标记和过滤器,甚至有自己的一些。内置的web服务器+自动生成器提供即时刷新和无限的灵活性…”

“Jekyll是一个简单的、支持博客的静态网站生成器。它使用包含各种格式的原始文本文件的模板目录,通过Markdown(或Textile)和Liquid转换器运行,并生成一个完整的、随时可发布的静态网站,适合与您喜爱的web服务器一起使用…”

“Blatter是一个创建和发布静态网站的微型工具 从动态模板生成…”