请问有人遇到,加入 Routing 路由后,静态文件 .js 都无法正确载入了吗?
-------------------------------------------------------------------
请问,小弟我把既有的 ASP.NET WebForm 网站,原本用网址传参数,
http://localhost/watch.aspx?id=123
现加入 Routing 路由的功能后,虽然有成功,网址变:
http://localhost/watch/123
但 watch.aspx 中,所载入的 JavaScript 文件及函数,如:
<script src="js/test1.js"></script>
原本都能正常载入,现在全都捉不到了。因此页面中要引用这些
JavaScript 文件里的函数,都出现「未经定义」错误。
-------------------------------------------------------
错误: 'myJsFunc1' 未经定义
-------------------------------------------------------
请问有人遇到这样,加入 Routing 路由后,静态文件 .js 都无法正确载入了吗?
谢谢。
欢迎提供各方意见。若有可供参考的资料,本帖一定会尽快结帖、给点数。
很简单。使用绝对路径或相对站点的路径引用js、css等。
因为多级路径的原因,所以会出现你这个问题。
感谢告知。小弟我晚点再试看看。
也欢迎其他网友提供经验、其他解法。
本提问一周内会结案、给点数。谢谢。
@WizardWu:
后来我弃用 Routing,改用 URL Rewriting,结果也一样。
原本都能正常引用,现在全都捉不到了。页面中要引用这些
JavaScript 文件里的函数,都出现「未经定义」错误。
变成引用的 js 文件,要改成「绝对路径」才捉得到,如下:
<script src="http://localhost:803/js/test1.js"></script>
用微软的 URL Rewrite Module 2.0,在 IIS 设置 URL Rewriting:
http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-20-configuration-
reference
请问是否有人遇过一样的问题?
@WizardWu:
改法如下 (相對路徑,改為從「根目錄」捉起。不必寫死成 http:// 開頭的 ip 或網域名稱) :
.html、.js、.aspx 改法:
路徑 js/xxx.js 或 ../js/xxx.js,改成 /js/xxx.js
路徑 image/xxx.png 或 ../image/xxx.png,改成 /image/xxx.png
路徑 xxx.html,改成 /xxx.html
路徑 $('#top').load('../head/head.html'); ,改成 $('#top').load('/head/head.html');
.aspx.cs 改法 (C#):
img.Src = "images/NEW.png"; ,改成 img.Src = "~/images/NEW.png";