解析静态资源的路径的方法及装置与流程

文档序号:13736029阅读:191来源:国知局
解析静态资源的路径的方法及装置与流程

本发明涉及数据处理技术领域,尤其涉及一种解析静态资源的路径的方法及装置。



背景技术:

浏览器的地址栏的内容通常表示的是当前浏览内容的url(统一资源定位符)。在很多情况下,为了能够明确的表示当前浏览内容的路径、栏目或者层级,url通常使用restful形式的风格,例如新闻列表页地址表示为http://127.0.0.1/news,实际在服务端会将这个地址最终映射到一个实际的html文件并返回,此html文件被浏览器解析,当浏览器加载html文件中的外部资源时,会根据外部资源的路径去加载。

在html文件中,路径类型包括:绝对路径和相对路径,使用相对路径,通常相对于根路径来写,例如引入一个图片时,相对根路径的地址写成:/images/login.png,此时加载静态资源将无法正常加载,原因是浏览器认为该图片的路径是http://127.0.0.1/news/images/login.png,但是,实际上这个路径不存在。

针对现有技术中,若静态资源的路径设置为相对路径,会导致无法正常加载该静态资源的问题,目前尚未提出有效的解决方案。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的解析静态资源的路径的方法及装置。

第一个方面,提供了一种解析静态资源的路径的方法,包括:

获取请求方请求访问的静态资源的资源路径;

若所述资源路径在请求方访问的网站的根路径下不存在,根据所述资源路径,确定所述静态资源的实际路径;

将所述静态资源的实际路径返回给所述请求方,以使所述请求方根据所述实际路径加载所述静态资源。

可选地,所述方法还包括:

判断所述资源路径在请求方访问的网站的根路径下是否存在;

若所述资源路径在请求方访问的网站的根路径下存在,将所述资源路径返回给所述请求方,以使所述请求方根据所述资源路径加载所述静态资源。

可选地,所述根据所述资源路径,确定所述静态资源的实际路径,包括:

根据所述静态资源的资源路径确定一restful风格的资源路径;

根据所述restful风格的资源路径确定所述静态资源在所述请求访问的网站的根路径下的实际路径。

可选地,根据所述restful风格的资源路径确定所述静态资源在所述请求访问的网站的根路径下的实际路径,包括:

按照预定的顺序从所述restful风格的资源路径中删除一个划分单元,其中,所述restful风格的资源路径包括用分隔符划分得到的多个划分单元;

判断剩余的资源路径在所述请求访网站的根路径下是否存在;

若不存在,继续按照预定的顺序从所述restful风格的资源路径中删除下一个划分单元,再判断剩余的资源路径在所述网站的根路径下是否存在,若不存在,继续上述过程,直至剩余的资源路径在所述的网站的根路径下存在,并将所述剩余的路径确定为所述实际路径。

可选地,所述获取请求方请求访问的静态资源的资源路径,包括:

获取所述请求方访问所述网站的请求;

判断请求访问的资源是否存在静态资源;

若所述请求访问的资源存在静态资源,获取所述静态资源的资源路径。

第二方面,还提供了一种解析静态资源的路径的装置,包括:

获取模块,用于获取请求方请求访问的静态资源的资源路径;

确定模块,用于若所述资源路径在请求方访问的网站的根路径下不存在,根据所述资源路径,确定所述静态资源的实际路径;

发送模块,用于将所述静态资源的实际路径返回给所述请求方,以使所述请求方根据所述实际路径加载所述静态资源。

可选地,所述装置还包括:

判断模块,用于判断所述资源路径在请求方访问的网站的根路径下是否存在;

所述发送模块,还用于若所述资源路径在请求方访问的网站的根路径下存在,将所述资源路径返回给所述请求方,以使所述请求方根据所述资源路径加载所述静态资源。

可选地,所述确定模块包括:

解析单元,用于根据所述静态资源的资源路径确定一restful风格的资源路径;确定单元,用于根据所述restful风格的资源路径确定所述静态资源在请求访问的网站的根路径下的实际路径。

可选地,所述确定单元进一步用于:按照预定的顺序从所述restful风格的资源路径中删除一个划分单元,其中,所述restful风格的资源路径包括用分隔符划分得到的多个划分单元;判断剩余的资源路径在请求访问的网站的根路径下是否存在;若不存在,继续按照预定的顺序从所述restful风格的资源路径中删除下一个划分单元,再判断剩余的资源路径在请求访问的网站的根路径下是否存在,若不存在,继续上述过程,直至剩余的资源路径在请求访问的网站的根路径下存在,并将所述剩余的路径确定为所述实际路径。

可选地,所述获取模块包括:

第一获取单元,用于获取所述请求方访问所述网站的请求;

判断单元,用于判断所述请求访问的资源是否存在静态资源;

第二获取单元,用于若所述请求访问的资源存在静态资源,获取所述静态资源的资源路径。

本发明实施例的有益效果是:若访问的静态资源的资源路径在请求方访问的网站的根路径下不存在,将该静态资源的资源路径转换为实际路径,并将实际路径返回给请求方,以使请求方能够根据该实际路径正常加载该静态资源,解决现有技术中若静态资源的路径设置为相对路径,会导致无法正常加载该静态资源的问题,由于能够将静态资源的资源路径设置为相对路径,当网站发布的地址需要修改时,也无需对该静态资源的资源路径进行修改,避免因采用绝对路径时,在网站发布的地址需要修改时,需要对所有绝对路径进行修改的问题,采用发明实施例的实施方式有利于网站的部署。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

图1为本发明的第一实施例的解析静态资源的路径的方法的示意图之一;

图2为本发明的第一实施例中步骤101的示意图;

图3为本发明的第一实施例中步骤103的示意图;

图4为本发明的第一实施例的解析静态资源的路径的方法的示意图之二;

图5为本发明的第二实施例的解析静态资源的路径的装置的框图之一;

图6为本发明的第二实施例的解析静态资源的路径的装置的框图之二。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

需要说明的是,本发明的说明书和权利要求书中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如一系列步骤或单元的,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。

需要说明的是,在不冲突的情况下,本发明的实施例以及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明的技术方案。

第一实施例

图1是根据本发明实施例的解析静态资源的路径的方法的流程图,如图1所示,该解析静态资源的路径的方法可以包括如下的步骤:

步骤101、获取请求方请求访问的静态资源的资源路径,然后进入步骤103。

上述请求方可以是计算机、移动电话、平板电脑等电子设备,需要说明的是,在本实施例中并不限定请求方的具体类型。

上述静态资源(staticresource)在第一次编译后即确定其对象或值,之后不能对其进行修改,静态资源可以是网站本身的css(层叠样式表)、js(javascript)等文件,或者也可以是网站内容中的图片等资源,需要说明的是,在本实施例中并不限定静态资源的具体内容。

上述资源路径可以是资源的绝对路径,也可以是资源的相对路径,其中,

绝对路径,指的是完整的路径。资源的绝对路径表示:资源的地址是一个绝对地址,例如http://127.0.0.1/login.png;

相对路径,就是在同一个网站下,不同文件之间的位置定位。引用的文件是相对当前网页的位置而言的,根据这个相对位置得出相对路径。上述资源的相对路径可以表示:资源的地址是相对于根路径的地址,例如引入一个图片时,相对根路径的地址写成:/images/login.png。

网站的根路径,就是网站空间存放网站文件的逻辑盘根路径,不同空间商提供的空间不一样,根路径也不一样。

为了便于本领域技术人更好的理解本发明的实施方式,下面对绝对路径和相对路径进行详细的介绍。

绝对路径是指文件在硬盘上真正存在的路径。例如“bg.jpg”这个图片是存放在硬盘的“e:\book\网页布局代码\第2章”目录下,那么“bg.jpg”这个图片的绝对路径就是“e:\book\网页布\代码\第2章\bg.gif"。那么如果要使用绝对路径指定网页的背景图片就应该使用以下语句:

<bodybackround="e:\book\网页布局\代码\第2章\bg.gif">

相对路径,就是相对于自己的目标文件位置。例如上面的例子,“s1.htm”文件里引用了“bg.jpg”图片,由于“bg.jpg”图片相对于“s1.htm”来说,是在同一个目录的,那么要在“s1.htm”文件里使用以下代码后,只要这两个文件的相对位置没有变(也就是说还是在同一个目录内),那么无论上传到web服务器的哪个位置,在浏览器里都能正确地显示图片。

<bodybackground="bg.gif">

再举一个例子,假设“s1.htm”文件所在目录为“e:\book\网页布局\代码\第2章”,而“bg.jpg”图片所在目录为“e:\book\网页布局\代码\第2章\img”,那么“bg.jpg”图片相对于“s1.htm”文件来说,是在其所在目录的“img”子目录里,则引用图片的语句应该为:

<bodybackground="img/bg.gif">

需要说明的是,相对路径使用“/”字符作为目录的分隔字符,而绝对路径可以使用“\”或“/”字符作为目录的分隔字符。由于“img”目录是“第2章”目录下的子目录,因此在“img”前不用再加上“/”分隔字符。

在相对路径里常使用“../”来表示上一级目录。如果有多个上一级目录,可以使用多个“../”,例如“http://www.cnblogs.com/”代表上上级目录。假设“s1.htm”文件所在目录为“e:\book\网页布局\代码\第2章”,而“bg.jpg”图片所在目录为“e:\book\网页布局\代码”,那么“bg.jpg”图片相对于“s1.htm”文件来说,是在其所在目录的上级目录里,则引用图片的语句应该为:

<bodybackground="../bg.gif">

参见图2,在步骤101可以包括步骤1011、步骤1013和步骤1015。

在步骤1011中,获取请求方访问网站的请求,然后进入步骤1013。

上述网站可以是门户网站、政府网站或者企业官方网站,需要说明的是,在本实施例中并不限定该网站的具体类型。

在步骤1013中,判断所述请求访问的资源是否存在静态资源,若存在进入步骤1015;否则,可返回步骤1013;

在步骤1015中,若所述请求访问的资源存在静态资源,获取静态资源的资源路径。

例如:请求路径以使请求方根据资源路径加载该静态资源。

具体地,对于资源类型为文件的所有请求进行截获,例如通过编写一个httphandler(是一个http请求的处理中心)截获请求,然后判断请求的资源是否是静态资源,若是,则获取该静态资源的资源路径。

步骤103、若资源路径在请求方访问的网站的根路径下不存在,根据资源路径,确定静态资源的实际路径,然后进入步骤105。

在本实施例中,上述静态资源的实际路径是指存在于请求方访问的网站的根路径下的与该静态资源对应的路径,请求方可以通过该实际路径正常加载该静态资源,需要说明的是,在本实施例中并不限定该实际路径的具体形式。

参见图3,步骤103包括:步骤1031、步骤1033和步骤1035。

步骤1031、根据静态资源的资源路径确定一restful风格的资源路径,然后进入步骤1033;

restful风格的url:指的是将访问的资源的url组织成restful风格,这个url并不是资源的实际地址,后端需要映射。

例如:资源路径为127.0.0.1/test/home/login/images/login.png,

一种可选的实现方式是:通过分隔符按照从左到右将静态资源的资源路径划分成多个单元,第一次删除第一个单元“127.0.0.1”,得到restful风格的资源路径:/test/home/login/images/login.png

当然,可以理解的是,在本实施例中也可以通过其他方式确定restful风格的资源路径。例如:在php中,一般通过$_server['http_host']来获得url中网站的域名或者ip地址,例如资源路径为127.0.0.1/test/home/login/images/login.png,通过$_server['http_host']从127.0.0.1/test/home/login/images/login.png获取“/127.0.0.1”然后删除,即可得到restful风格的资源路径。

步骤1033、根据restful风格的资源路径确定所述静态资源在请求访问的网站的根路径下的实际路径。

具体地,在步骤1033中,按照预定的顺序从所述restful风格的资源路径中删除一个划分单元,其中,所述restful风格的资源路径包括用分隔符划分得到的多个划分单元;判断剩余的资源路径在所述请求访问的网站的根路径下是否存在;若不存在,继续按照预定的顺序从所述restful风格的资源路径中删除下一个划分单元,再判断剩余的资源路径在请求访问的网站的根路径下是否存在,若不存在,继续上述过程,直至剩余的资源路径在请求访问的网站的根路径下存在,并将所述剩余的路径确定为所述实际路径。

结合步骤1033中的例子,restful风格的资源路径“/test/home/login/images/login.png”包括的划分单元为“/test”、“/home”、“/login”、“/images”、“/login.png”。

需要说明的是,静态资源的资源路径按照分隔符‘/’分隔,分隔后每个字符串为一个划分单元。例如,静态资源的资源路径为:127.0.0.1/test/login.png,划分单元依次是127.0.0.1、test、login.png。

继续参见图1,步骤105、将静态资源的实际路径返回给请求方,以使请求方根据实际路径加载所述静态资源。

可选地,在图1的基础上,方法还包括:步骤107和步骤108,参见图4。

在步骤101之后,进入步骤107,在步骤107中、判断资源路径在请求方访问的网站的根路径下是否存在,若存在,可进入步骤103;否则进入步骤108。

步骤108、若资源路径在请求方访问的网站的根路径下存在,将与资源路径返回给所述请求方,以使请求方根据所述资源路径加载静态资源。

下面举例说明,例如某个请求访问的静态资源的资源路径是:

127.0.0.1/test/home/login/images/login.png

首先按照分隔符号“/”从左到右划分为每个单元,第一次,删除/127.0.0.1,得到restful风格路径:/test/home/login/images/login.png,看剩余的路径:/test/home/login/images/login.png在根路径下是否存在,若不存在,再删除/test,再判断是否存在此文件,不存在则继续上述过程,直至找到文件真实路径或者判定文件确实不存在。

在本实施例中,若访问的静态资源的资源路径在请求方访问的网站的根路径下不存在,将该静态资源的资源路径转换为实际路径,并将实际路径返回给请求方,以使请求方能够根据该实际路径正常加载该静态资源,解决现有技术中若静态资源的路径设置为相对路径,会导致无法正常加载该静态资源的问题,由于能够将静态资源的资源路径设置为相对路径,当网站发布的地址需要修改时,也无需对该静态资源的资源路径进行修改,避免因采用绝对路径时,在网站发布的地址需要修改时,需要对所有绝对路径进行修改的问题,采用发明实施例的实施方式有利于网站的部署。

第二实施例

参见图5,图中示出了一种解析静态资源的路径的装置,该装置包括:获取模块501、确定模块503和发送模块505。其中,

获取模块501,用于获取请求方请求访问的静态资源的资源路径;上述静态资源包括网站本身的css(层叠样式表)、js(javascript)等文件,还包括网站内容中的图片等资源,需要说明的是,在本实施例中并不限定静态资源的具体内容。上述资源路径可以是资源的绝对路径,也可以是资源的相对路径,其中,资源的绝对路径表示:资源的地址是一个绝对地址,例如http://127.0.0.1/login.png;资源的相对路径可以表示:资源的地址是相对于根路径的地址,例如引入一个图片时,相对根路径的地址写成:/images/login.png。

确定模块503,用于若所述资源路径在请求方访问的网站的根路径下不存在,根据所述资源路径,确定所述静态资源的实际路径。在本实施例中,上述静态资源的实际路径是指存在于网站的根路径下的与该静态资源对应的路径,请求方可以通过该实际路径正常记载该静态资源,需要说明的是,在本实施例中并不限定该实际路径的具体形式。

发送模块505,用于将所述静态资源的实际路径返回给所述请求方,以使所述请求方根据所述实际路径加载所述静态资源。

可选地,在本实施例中,发送模块506,还用于若所述资源路径在请求方访问的网站的根路径下存在,将所述资源路径返回给所述请求方,以使所述请求方根据所述资源路径加载所述静态资源。

在图5的基础上,可选地,装置还包括:判断模块507,参见图6。

判断模块507,用于判断所述资源路径在请求方访问的网站的根路径下是否存在。

在图5的基础上,可选地,确定模块503包括:解析单元5031和确定单元5035,参见图6。

解析单元5031,用于根据所述静态资源的资源路径确定一restful风格的资源路径;

确定单元5035,用于根据所述restful风格的资源路径确定所述静态资源在所述根路径下的实际路径。

可选地,所述确定单元5035进一步用于:按照预定的顺序从所述restful风格的资源路径中删除一个划分单元,其中,所述restful风格的资源路径包括用分隔符划分得到的多个划分单元;判断剩余的资源路径在请求访问的网站的根路径下是否存在;若不存在,继续按照预定的顺序从所述restful风格的资源路径中删除下一个划分单元,再判断剩余的资源路径在请求访问的网站的根路径下是否存在,若不存在,继续上述过程,直至剩余的资源路径在请求访问的网站的根路径下存在,并将所述剩余的路径确定为所述实际路径。

在图5的基础上,可选地,获取模块501包括:第一获取单元5011、判断单元5013和第二获取单元5015,参见图6。

第一获取单元5011,用于获取所述请求方访问所述网站的请求;

判断单元5013,用于判断所述请求访问的资源是否存在静态资源;

第二获取单元5015,用于若所述请求访问的资源存在静态资源,获取所述静态资源的资源路径。

所述解析静态资源的路径的装置包括处理器和存储器,上述获取模块、确定模块、发送模块、判断模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术中若静态资源的路径设置为相对路径,会导致无法正常加载该静态资源的问题。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

在本实施例中,若访问的静态资源的资源路径在请求方访问的网站的根路径下不存在,将该静态资源的资源路径转换为实际路径,并将实际路径返回给请求方,以使请求方能够根据该实际路径正常加载该静态资源,解决现有技术中若静态资源的路径设置为相对路径,会导致无法正常加载该静态资源的问题,由于能够将静态资源的资源路径设置为相对路径,当网站发布的地址需要修改时,也无需对该静态资源的资源路径进行修改,避免因采用绝对路径时,在网站发布的地址需要修改时,需要对所有绝对路径进行修改的问题,采用发明实施例的实施方式有利于网站的部署。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取请求方请求访问的静态资源的资源路径;若所述资源路径在请求方访问的网站的根路径下不存在,根据所述资源路径,确定所述静态资源的实际路径;将所述静态资源的实际路径返回给所述请求方,以使所述请求方根据所述实际路径加载所述静态资源。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1