您好我已经抓取了一个网站以进行离线查看,但是许多页面都已下载并保存为.asp,并且有指向这些页面的链接。但是当我在Chrome浏览器中打开这些扩展名为.asp的html页面时,Chrome会下载页面而不是呈现页面。有没有办法设置chrome来呈现页面而不是下载它?
由于
答案 0 :(得分:3)
Chromium使用系统mime-type作为本地文件。在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>
将mime-type设置为text/html
。最后,您必须再次注销/ -in,或者只运行:
$ update-desktop-database ~/.local/share/applications
$ update-mime-database ~/.local/share/mime
答案 1 :(得分:2)
当您的浏览器打开文件时,它会使用MIME类型来决定应采取的操作,通常是下载或在bowser中打开。
因此,例如,它遇到一个zip文件,它将打开文件保存对话框并允许您保存文件。
并且,例如,如果您从浏览器请求从Web服务器提供的.asp,则浏览器将使用MIME类型来决定要采取的操作,该操作将在浏览器中显示。
MIME类型将在http headers内发送,当您打开离线.asp页面时,不会将其发送到浏览器。
因此,如果您可以将.asp的MIME类型更改为“text / html”,则应在浏览器中将其打开。
不幸的是,似乎没有更改Chrome中MIME类型/操作的选项。
您可以在工具&gt;中的Firefox中change进行这些设置。选项&gt;内容&gt;文件类型&gt;管理..
答案 2 :(得分:2)
有一种方法可以在Firefox中以HTML格式打开本地的.asp文件。
找到您的Firefox profile folder。在Windows 7上,我在这里找到了它:
C:\用户\用户\应用程序数据\漫游\ Mozilla的\火狐\概况\ 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可能有类似的技巧。
答案 3 :(得分:0)
我想您想直接查看下载的页面,而不是通过某些本地Web服务器。然后我建议在下载期间根据响应头中报告的内容类型更改(或附加)文件扩展名。当然,这将需要调整其他文件中所有已更改文件名的链接。另一种方法可能是将每个页面的内容类型存储在元库中,并使用本地Web服务器根据文件中的实际类型来提供文件,而不是文件扩展名。
答案 4 :(得分:0)
我为您提供两种解决方案。第一个是使用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
}
})
})