我正在使用JSP,servlet,JAX-RS和AngularJS开发一个java / javascript Web应用程序。我对这种东西很新。
我遇到的一个问题是我需要从静态html,javascript文件,jsps和servlet中寻址url路径。我希望能够在不同的上下文根部署这个Web应用程序(基本上部署在不同的文件夹中)。但为了做到这一点,除非我弄错了,否则我必须浏览所有静态文件(javascript和html)并更改每个链接以根据新的根目录正确引用资源。对于服务器端文件,有一些Java便捷方法,比如ServletContext的getContextPath(),它允许我避免这种情况。
是否有任何人们使用的约定或策略允许用户轻松地将网络应用移动到网站上的不同目录而不会破坏所有链接?目前我猜你必须搜索并替换所有链接。
也许在所有本地链接旁边添加一个特殊标记,以便您知道更改它?
干杯,
答案 0 :(得分:0)
如Java1所示,只需使用相对路径。
如果您引用的资源与当前网页位于同一级别,则无需添加任何路径信息。例如,如果您的主网页是从路径http://www.example.com/context/hello.html
加载的,并且您有一个包含路径http://www.example.com/context/image
的图像文件夹,那么您只需使用相对路径{{}在html中加载该文件夹中的图像。 1}},不在路径中放置主机名或servlet上下文。
如果您的级别比您引用的资源更深,请在路径前面使用“../”。例如:<img src="image/someimage.png">
。如果你更深层次,请使用`../../ image / someImage``等。
这不仅适用于图像,也适用于脚本或静态html ,只要网络浏览器正在加载资源。
Web浏览器负责将相对路径转换为服务器路径。如果您需要从服务器端加载某些内容,则需要使用完整路径。