您好,我已爬网一个网站以供离线查看,但是许多页面已下载并另存为.asp,并且有指向这些页面的链接。但是,当我在Chrome浏览器中打开这些扩展名为.asp的html页面时,chrome将下载该页面而不是呈现该页面。有没有一种方法可以将Chrome设置为呈现页面而不是下载页面?
谢谢
[当您的浏览器打开文件时,它使用MIME类型来决定应该执行的操作,通常是在Bowser中下载或打开。
例如,它遇到一个zip文件,它将打开文件保存对话框,并允许您保存文件。
并且,例如,如果您从网络服务器提供的浏览器中请求一个.asp,浏览器将使用MIME类型来决定要采取的操作,该操作将在浏览器中显示。
MIME类型将在http headers中发送,当您打开离线.asp页时,不会将其发送到浏览器。
因此,如果您可以将.asp的MIME类型更改为“ text / html”,则应在浏览器中将其打开。
不幸的是,在Chrome中似乎没有用于更改MIME类型/操作的选项。
您可以在Firefox中的“工具”>“选项”>“内容”>“文件类型”>“管理”中change这些设置。
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9xZm9kOC5wbmcifQ==” alt =“在此处输入图像描述”>
Chromium对本地文件使用系统mime类型。在Linux上,您可以在xdg-open配置中对其进行更改:
$ mkdir -p ~/.local/share/mime/packages
$ cd ~/.local/share/mime/packages
$ touch application-x-asp.xml
然后编辑~/.local/share/mime/packages/application-x-asp.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="text/html">
<comment>Active Server Page</comment>
<icon name="text-html"/>
<glob-deleteall/>
<glob pattern="*.asp"/>
</mime-type>
</mime-info>
将哑剧类型设置为text/html
。最后,您必须再次注销/登录,或者只是运行:
$ update-desktop-database ~/.local/share/applications
$ update-mime-database ~/.local/share/mime
[有一种方法可以在Firefox中以HTML格式打开本地.asp文件。
找到您的Firefox profile folder。在Windows 7上,我在这里找到它:
C:\ Users \ user \ AppData \ Roaming \ Mozilla \ Firefox \ Profiles \ 738xdie.default \ mimeTypes.rdf
然后将这些行添加到mimeTypes.rdf
<RDF:Description RDF:about="urn:mimetype:text/html"
NC:fileExtensions="asp"
NC:description="ASP Pages"
NC:value="text/html"
NC:editable="true">
</RDF:Description>
重新启动浏览器。您的本地文件现在将呈现为HTML。
Chrome可能有类似的技术。
我想您想直接查看下载的页面,而不是通过某些本地Web服务器。然后,我建议根据下载文件扩展名中响应标题中报告的内容类型来更改(或附加)文件扩展名。当然,这将需要将所有链接调整为其他文件中更改的文件名。另一种方法是将每个页面的内容类型存储在元数据库中,并使用本地Web服务器根据文件的实际类型(而不是文件扩展名)从文件中提供文件。
我有两种解决方案。第一个是使用firefox打开这些文件。就是这样。如果您坚持要用chrome打开它们。您必须将所有文件扩展名更改为html而不是asp。使用某些程序进行重命名。但是页面之间的链接将断开。因此,您必须找到所有页面都使用的js文件,并在其中添加此代码以修复链接。
document.body.addEventListener('click',function(e){
if(e.target.nodeName=='A'){
e.preventDefault()
href=e.target.href.split('/')
href[href.length-1]=href[href.length-1].replace('.asp','.html')
href=href.join('/')
parent.location=href
}
})
})