首页 新闻 会员 周边 捐助

WebForm 加入 Routing 後,.js 文件都无法载入

0
悬赏园豆:100 [已解决问题] 解决于 2015-04-02 18:25

请问有人遇到,加入 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 都无法正确载入了吗?

谢谢。

欢迎提供各方意见。若有可供参考的资料,本帖一定会尽快结帖、给点数。

WizardWu的主页 WizardWu | 小虾三级 | 园豆:1402
提问于:2015-03-30 17:31
< >
分享
最佳答案
1

很简单。使用绝对路径或相对站点的路径引用js、css等。

因为多级路径的原因,所以会出现你这个问题。

收获园豆:100
519740105 | 大侠五级 |园豆:5810 | 2015-03-30 18:01

感谢告知。小弟我晚点再试看看。

也欢迎其他网友提供经验、其他解法。
本提问一周内会结案、给点数。谢谢。

WizardWu | 园豆:1402 (小虾三级) | 2015-03-30 18:50

@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 | 园豆:1402 (小虾三级) | 2015-03-31 16:19

@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";

WizardWu | 园豆:1402 (小虾三级) | 2015-04-21 15:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册