我正在使用 spring 框架,以下是 url 到控制器的映射

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/controller.web">webController</prop>
<prop key="/robots.txt">robotsController</prop>
</props>
</property>
</bean>

当我点击controller.web控件时,它会访问网络控制器,但是当我点击robots.txt控件时,不会传输到robotsController,而是会尝试查找资源robots.txt,如果我从上下文目录中删除robots.txt,它会说找不到资源。

如果我将 robots.txt 更改为 robots.web,它工作正常,这意味着 robots.txt 的名称有些可疑,您知道吗?

有帮助吗?

解决方案

我猜你的 DispatcherServlet 被映射为 <url-pattern>*.web</url-pattern>, ,因此它只处理请求 *.web.

如果你想 DispatcherServlet 要处理具有不同扩展名的请求,您有多种选择:

  • 添加几个 url-pattern<servlet-mapping>:

    <url-pattern>*.web</url-pattern>
    <url-pattern>*.txt</url-pattern>
    
  • 处理所有请求 DispatcherServlet 映射为 <url-pattern>/</url-pattern>. 。请注意,此方法需要付出一些努力来提供静态内容,请参阅 这里.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top