Sco*_*ith 5 java windows configuration tomcat
首先,我们运行 Tomcat8、Java8 和 Windows Server 2012。
我们将图像、样式、JavaScript 和其他静态资源存储在我们的 Web 应用程序之外的名为“共享”和“上传”的目录中。为了配置它,我创建了一个基本上下文,所有应用程序都如下所示:
<Context>
<Resources>
<PreResources base="${document.root}\shared" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/shared" />
<PreResources base="${document.root}\uploads" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/uploads" />
</Resources>
</Context>
Run Code Online (Sandbox Code Playgroud)
此外,还有一个特定于站点的上下文,如下所示:
<Context docBase="${document.root}\sitename">
</Context>
Run Code Online (Sandbox Code Playgroud)
我们注意到对共享目录的一些请求有效,而另一些则无效。我发现它与文件名大小写有关。共享中的某些文件的名称以小写字母开头,有些文件以大写字母开头。那些具有小写名称的工作正常。所以为了测试一个理论,我对同一个文件名(一个不存在的)发出了两个请求,只改变了大小写,所以我可以看到 404 页面并看到实际使用的文件路径。
我首先请求了这个 URL:
{domain}/shared/Base.js
Run Code Online (Sandbox Code Playgroud)
得到的 404 页面表明 Tomcat 搜索了此路径:
/shared/base.js
Run Code Online (Sandbox Code Playgroud)
然后我请求了这个 URL:
{domain}/shared/base.js
Run Code Online (Sandbox Code Playgroud)
得到的 404 页面表明 Tomcat 搜索了此路径:
/shared/base.js
Run Code Online (Sandbox Code Playgroud)
如您所见,无论我在 URL 中使用什么大小写,它似乎都将其转换为小写。因此,如果我去重命名一个未能全部使用小写名称的文件,则一切正常。问题是这些是大目录,我们的目标是在不同步代码更新的情况下升级我们的服务器。此外,上传中的内容由我们的用户提交,除了确保唯一名称外,我们不会更改文件名,因此大小写将继续是随机的。有没有人知道我可以使用某些属性或配置让 Tomcat 完全按照 URL 中提供的文件名使用文件名?
| 归档时间: |
|
| 查看次数: |
2272 次 |
| 最近记录: |