Apache tomcat 5.5使用虚拟主机设置上下文路径(非webapps目录)
我已经做了几年的web开发人员(一些是ASP,大部分是PHP),最近两年我学习了Java/JSP 有一件事我已经反复尝试了,但仍然没有想到,那就是如何在另一个位置(不是webapps文件夹)设置一个工作的JSP应用程序。将我的应用程序从webapps中移出对我来说似乎不是问题 有没有人能帮我把它分解一下,或者让我在某个地方贴一篇概述它的文章 我在谷歌上反复搜索,反复阅读apache.org网站上的文档,但我似乎仍然无法获得:( 我试图建立一个“爆炸”的网站(文件夹和文件分开-不是战争的一部分) 我知道我可以编辑server.xml文件,但不应该这样做(这并不重要……即使我尝试编辑失败) 我知道我错过了一些与路径的工作方式。我以为我理解,但我不这样认为 非常感谢您的帮助 我喜欢这个网站 --我决定更详细地重新表述我的问题-- 假设我的目录结构如下(**注意:webproject不在tomcat/webapps目录中) 我想设置一个虚拟主机,以便通过URL查看我的项目: 我想我只需要两件事(我正在使用apache):Apache tomcat 5.5使用虚拟主机设置上下文路径(非webapps目录),apache,jsp,configuration,virtualhost,tomcat5.5,Apache,Jsp,Configuration,Virtualhost,Tomcat5.5,我已经做了几年的web开发人员(一些是ASP,大部分是PHP),最近两年我学习了Java/JSP 有一件事我已经反复尝试了,但仍然没有想到,那就是如何在另一个位置(不是webapps文件夹)设置一个工作的JSP应用程序。将我的应用程序从webapps中移出对我来说似乎不是问题 有没有人能帮我把它分解一下,或者让我在某个地方贴一篇概述它的文章 我在谷歌上反复搜索,反复阅读apache.org网站上的文档,但我似乎仍然无法获得:( 我试图建立一个“爆炸”的网站(文件夹和文件分开-不是战争的一部分)
/htdocs
时,看起来您认为是后者
因此,如果JSP页面是由http://example.com/context/page.jsp
和foo.gif
实际上可以通过http://example.com/context/images/foo.gif
,则需要使用页面相对URL:
<img src="images/foo.gif">
<img src="/context/images/foo.gif">
<img src="//example.com/context/images/foo.gif">
或域相对URL:
<img src="images/foo.gif">
<img src="/context/images/foo.gif">
<img src="//example.com/context/images/foo.gif">
或协议相关URL:
<img src="images/foo.gif">
<img src="/context/images/foo.gif">
<img src="//example.com/context/images/foo.gif">
或绝对URL:
<img src="http://example.com/context/images/foo.gif">
好的,在努力解决这个问题之后,我终于让它工作了。我并不是说这是最好的(甚至是正确的!)方法,但这是最终在我的Windows机器(运行WAMP)和运行Linux的远程服务器上对我起作用的方法 列出的路径是我的环境的路径。显然,这可能与您的情况不同 BEFORE-FIRST(仅限Windows) 使用Windows,您需要在主机文件中为新“域”设置一个条目 WIN-C:\Windows\System32\drivers\etc\hosts
127.0.0.1 webproject.local
首先
需要编辑httpd.conf并添加虚拟主机
WIN-C:\wamp\bin\apache\Apache2.2.11\conf\extra\httpd-vhosts.conf
LINUX-/etc/httpd/conf/httpd.conf
<VirtualHost *:80>
DocumentRoot "C:\wamp\www\webproject"
ServerName webproject.local
</VirtualHost>
DocumentRoot“C:\wamp\www\webproject”
ServerName webproject.local
秒
在server.xml中设置主机和上下文。从我在线阅读的内容来看,不鼓励编辑server.xml,但这是我唯一能找到答案的方法
WIN-C:\ProgramFiles(x86)\Apache软件基金会\Tomcat 5.5\conf\server.xml
<Host name="webproject" debug="0" appBase="webapps" unpackWARs="true">
<Context path="" docBase="C:/wamp/www/webproject"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="webproject.local_error-log." suffix=".txt" timestamp="true"/>
</Host>
LINUX-etc/tomcat5/server.xml
<Host name="webproject" debug="0" appBase="webapps" unpackWARs="true">
<Context path="" docBase="C:/wamp/www/webproject"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="webproject.local_error-log." suffix=".txt" timestamp="true"/>
</Host>
我不认为这是对的,但对我有用的是使用“webapps”作为appBase,即使我的文件不在“webapps”中文件夹。不知道为什么会起作用……我担心这是一种即使不应该也能起作用的情况。我希望比我聪明得多的人能提供一些见解。谢谢你的帮助。我使用了“htdocs”这是一个糟糕的例子,因为我知道文件夹通常用于参考本地文件系统来交付网页。但是在这种情况下,它不是(归咎于我的客户的编码标准)。因此,我使用的是与域相关的URL。话虽如此,您使用的术语“上下文”在所有的URL示例中,我认为我缺少的是。因此,即使使用“htdocs”,我想我的URL也应该是:“/context/htdocs/images/foo.gif”。接下来的问题是,我是否需要使用上下文?或者是否有什么方法可以在没有上下文的情况下设置我的域相对URL?例如“/htdocs/images/foo.gif”?Tomcat是否需要上下文?您只需确保相对URL与“父”页面的请求URL相匹配。请再次检查上述URL示例。如果您仍然遇到问题,请发布绝对URL(因此,您在浏览器地址栏中看到的URL)对于JSP页面和图像文件,然后我将告诉您,在JSP页面中使用图像的相对URL时,图像的相对URL应该是什么样子。我试图重新表述我的问题……我真的很想感谢巴卢斯给我的时间。我喜欢鹦鹉。