存档

文章标签 ‘html’

让htm支持SSI

2011年8月26日 没有评论

iis中:
  也就是需要两步,
  1.在虚拟主机块中加入,或者全局加
  AddOutputFilter INCLUDES .htm
  AddHandler server-parsed .htm
  2.在Directory中的Options加入Includes参数,我觉得使用IncludesNOEXEC可能会更好。

<Directory "F:/hx/">
    Options Indexes FollowSymLinks IncludesNOEXEC
</Directory>

  一些错误的解决:
  包含的文件出现如下提示:[an error occurred while processing this directive]
  原因之一:先检查一下包含的文件路径对不对,文件是否存在。
  如果正确,则问题出在包含的语句上。

<!--#include file="文件名称"-->
<!--#include virtual="文件名称"-->

  file 文件名是一个相对路径,该路径相对于使用 #include 指令的文档所在的目录。被包含文件可以在同一级目录或其子目录中,但不能在上一级目录中。如表示当前目录下的的top.htm文档,则为file=”top.htm”。
  virtual 文件名是 Web 站点上的虚拟目录的完整路径。如表示相对于服务器文档根目录下hx目录下的top.htm文件;则为virtual=”/hx/top.htm”
  如果是上一级目录的子目录,就是使用路径../hx/top.htm时,需要使用Virtual,如果使用file,则会产生上面的提示。但在IIS下这样好像不会产生错误。
  Apache中:
  要使服务器允许SSI ,必须在httpd.conf或.htaccess文件中有如下配置:
  Options +Includes
  这样就告诉服务器允许解析文件中的SSI指令。注意,在多数配置中,多个Options指令会互相覆盖,所以可能需要对使用SSI的目录专门使用一个Options指令,以确保其有效。
  并非所有文件中的SSI指令都会被解析,必须告诉Apache应该解析哪些文件。有两种方法使Apache解析带有特定后缀名的文件,比如:.shtml ,配置如下:

  AddType text/html .shtml
  AddOutputFilter INCLUDES .shtml

  该方法的缺点之一是,为了使文件具有.shtml后缀从而执行其中的指令,需要加入SSI指令的现有文件的名字,以及所有指向此页面的连接。
  另一种方法是,使用XBitHack指令:
  XBitHack on
  XBitHack告诉Apache解析所有设置了执行位的文件中的SSI指令。这样,无需修改文件名,只要用chmod使文件变成可执行的,就可以对现有页面增加SSI指令。
  chmod +x pagename.html
  这里简要说明一点:偶然会有人向你推荐,无须用带.shtml的文件名,只要使Apache解析所有.html文件的SSI就可以了。那些人可能没听说过XBitHack 。要知道,这样做会使Apache在发送文件到客户端之前通读此文件,即使其中并没有任何SSI指令,从而对速度有很不利的影响,所以这并不是好办法。
  当然,在Windows上,没有对应的执行位可以设置,所以对你的配置方法就有一些限制。
  在默认配置的情况下,Apache不会为SSI页面发送最后修改日期或者内容长度的HTTP头,因为这些值对动态页面来说难以确定。这样会阻止页面被缓冲,导致客户端性能有明显的下降。有两种解决方法:
  设置 XBitHack Full ,告诉Apache在判断最后修改日期时,只查看被请求文件本身的日期,而忽略其中包含的其它文件的修改日期。
  使用mod_expires提供的指令为文件设置一个明确的过期时间,并告诉浏览器和代理这个文件可以被缓冲。
From – http://ued.stuin.com/server/htm-ssi/

分类: 服务器管理 标签: , , , ,

PDFmyURL.com – 把任意网站转换成PDF

2010年1月15日 没有评论

在cnbeta上发现一个很好玩的网站,于是就转过来吧。
如果您要将一个网站迅速保存下来,可以用多种方法,首先是普通的HTML,这样会带来许多网页文件,保存成mht也可以解决问题,不过不够直观,而PDF文件的通用性和对电子阅读器的友好性,让这家名叫PDFmyURL.com的网站亮了。它可以迅速将HTML转换成PDF文件,这一切非常简单,访问他们主页,输入要做PDF的页面地址就好了,制作结束网站会提示你获取PDF,不过需要注意的是,它并没有中文字库,因此会显示一个一个框框。
访问www.PDFmyURL.com

分类: 趣味网站 标签: , , ,

如何控制frames的部分打印

2009年12月22日 没有评论

前两天要做一个页面的print button,但是网页是由两个frame构成的,而且其中的一个frame中包含了一个width很大的table,所以每次使用ie打印的时候都会将table的右部截去,但是FF打印的时候会自动缩放,T_T,由此可见ie的劣根性。。。

网上搜索了一下,大概有几种方法可以解决局部打印问题。

  1. 在html里面嵌入<!–start_pirnt–><!–end_print–>标签,然后使用js将要打印的部分取出,然后新打开一个窗口,将要打印的部分送入新窗口,onload事件里面写window.print即可,这样做了以后table就会全打出来了,但是这样做的用户体验不会太好,新开的窗口还需手动关上,但是我看了一下好几个大型网站的做法,在页面布局很复杂的情况下,按下print按钮,先会出来一个print preview的页面,然后再打印,这样也许给了用户适当的选择。
  2. 使用css控制要打印的内容,对不打印的部分加上<div class=”noprint”></div>,对要缩放的table加上id=zoom_table,然后css里面加上@media print{.noprint {display:none;} #zoom_talbe{zoom:70%}},这里要注意的是,zoom这个属性只有ie支持,这样就可以解决部分打印的问题了,自己使用的是第二种方法

这里还要注意的是如果不想把另外一个frame打印出来,则需window.parent.frame_name.print

    分类: 前台设计 标签: , , ,