Tomcat靜態資源訪問404問題
前言
該問題並不是eclipse或者是tomcat的問題,究其原因是自己資源路徑寫的有問題
分析
我的開發工具是eclipse,而不管是什么工具,項目都會有一個根路徑
如圖(右擊項目->Properties->Deployment assembly)
注意source一欄就是根路徑
如下
/src
/target/m2e-wtp/web-resources
/WebContent
那么根路徑有什么用呢
例如,一般會把前端的資源放在項目中的WebContent文件夾下,比如你把index.html和index.js放在WebContent文件夾下,
這時你在index.html中引入index.js的文件路徑就因該是
<script type="text/javascript" src="index.js">
而不是
<script type="text/javascript" src="./index.js">
理解了項目根路徑,如果把index.js放在項目中WebContent文件夾static文件夾下又該怎么寫呢
這時index.html文件中引入index.js就應該如下編寫
<script type="text/javascript" src="static/index.js">
而不是
<script type="text/javascript" src="./static/index.js">或 <script type="text/javascript" src="/static/index.js">
總結:
在項目中要遵循項目規范
1. 理解我上面講的根路徑的問題
2. 不要使用相對路徑和以/開頭的路徑名
例如:
不要寫成
/static/index.js
而是要寫成
static/index.js
最后:
也許項目中避免不了相對路徑,而把靜態資源部署到Tomcat服務器又要改名字
最好的解決辦法就是學會使用資源打包工具,例如Webpack,其中的路徑名交給Webpack中的路徑處理插件來解決