Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache tomcat 5.5使用虚拟主机设置上下文路径(非webapps目录)_Apache_Jsp_Configuration_Virtualhost_Tomcat5.5 - Fatal编程技术网

Apache tomcat 5.5使用虚拟主机设置上下文路径(非webapps目录)

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网站上的文档,但我似乎仍然无法获得:( 我试图建立一个“爆炸”的网站(文件夹和文件分开-不是战争的一部分)

我已经做了几年的web开发人员(一些是ASP,大部分是PHP),最近两年我学习了Java/JSP

有一件事我已经反复尝试了,但仍然没有想到,那就是如何在另一个位置(不是webapps文件夹)设置一个工作的JSP应用程序。将我的应用程序从webapps中移出对我来说似乎不是问题

有没有人能帮我把它分解一下,或者让我在某个地方贴一篇概述它的文章

我在谷歌上反复搜索,反复阅读apache.org网站上的文档,但我似乎仍然无法获得:(

我试图建立一个“爆炸”的网站(文件夹和文件分开-不是战争的一部分)

我知道我可以编辑server.xml文件,但不应该这样做(这并不重要……即使我尝试编辑失败)

我知道我错过了一些与路径的工作方式。我以为我理解,但我不这样认为

非常感谢您的帮助

我喜欢这个网站

--我决定更详细地重新表述我的问题--

假设我的目录结构如下(**注意:webproject不在tomcat/webapps目录中)

我想设置一个虚拟主机,以便通过URL查看我的项目:

我想我只需要两件事(我正在使用apache):

  • httpd.conf文件中的“VirtualHost”条目
  • 某种类型的“上下文”文件或片段
  • 我说得对吗?如果是的话,有人能帮我定义这两个元素吗

    另外,如果我想使用域相对URL从jsp页面引用logo.gif文件,我的路径会是什么样子

    如果我想使用域相对URL从page1.jsp引用page2.jsp,该怎么办

    但是,如果在我的应用程序中存在引用资源(图像、脚本等)的路径,并且使用从根目录开始的路径(即img src=“/htdocs/images/foo.gif”),则找不到该路径

    您是否知道这些路径应该是相对于当前请求URL(JSP页面之一)的URL,因此不是相对于它们在本地磁盘文件系统中的位置的本地磁盘文件系统路径?当您使用
    /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应该是什么样子。我试图重新表述我的问题……我真的很想感谢巴卢斯给我的时间。我喜欢鹦鹉。