asp.net mvc 发布到IIS测试,路径的引用问题

   2023-02-10 学习力0
核心提示:之前做的一个ASP.NET MVCI应用程序,今天发布到IIS中进行测试,结果发现之前的很多引用的脚本文件和CSS文件都显示不正常,仔细一看原来是路径引用的问题。IIS里建的虚拟目录,但我在引用文件的时候都是使用的是站点根目录的方式,当时没有考虑到,我是菜鸟大

之前做的一个ASP.NET MVCI应用程序,今天发布到IIS中进行测试,结果发现之前的很多引用的脚本文件和CSS文件都显示不正常,仔细一看原来是路径引用的问题。

IIS里建的虚拟目录,但我在引用文件的时候都是使用的是站点根目录的方式,当时没有考虑到,我是菜鸟大家别笑,记录下来,是提醒以后别忘记了,顺便提醒一下马虎的朋友们,^_^。

突然碰到这个问题,之前又没有太在意。问题总得想办法解决呀,最主要的就是三个问题。

1.html中引用的一些路径问题:

我才突然想到asp.net mvc中的一个帮助类UrlHelper,就使用了Url.Content()方法,使用了表示asp.net 中的虚拟根目录符号”~”,这样才将问题解决了,这个符号在一般的html代码中是不可以正常使用的,一定要在asp.net 中才可以使用。

2.脚本中引用路径的问题

脚本中也需要使用一些url,我是这样的,我写了一个WebHandler让它返回一个javascript 字符串对象,这个对象的字符串是指网站根目录或者虚拟目录。

WebHandler中的代码

 

代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace ZencartFAQ.Handler
{
    
/// <summary>
    
/// Summary description for $codebehindclassname$
    
/// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
    
public class GetRootPath : IHttpHandler
    {

        
public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType 
= "text/plain";
            
if ("/Handler/GetRootPath.ashx".ToUpper() == context.Request.ServerVariables["SCRIPT_NAME"].ToUpper())
            {
                context.Response.Write(
"var rootPath='" + "http://" + context.Request.ServerVariables["HTTP_HOST"+ "'");
            }
            
else
            {
                
string virtualPath = context.Request.ServerVariables["SCRIPT_NAME"];
                
int tmpEnd = virtualPath.IndexOf('/'1);
                context.Response.Write(
"var rootPath='" + "http://" + context.Request.ServerVariables["HTTP_HOST"+ virtualPath.Substring(0, tmpEnd + 1+ "'");
            }
        }

        
public bool IsReusable
        {
            
get
            {
                
return false;
            }
        }
    }
}


另外脚本的使用就是引用

代码
    <script src='<%=Url.Content("~/Handler/GetRootPath.ashx")%>' type="text/javascript" language="javascript"></script>
    
<script type="text/javascript" language="javascript">
        alert(rootPath);
    
</script>


3.样式表中引用的问题

CSS中一般引用路径都是一些图片文件,我是将所有的图片文件放到IIS根目录下,这样就可以访问了。

技术有限,没有总结好的请大家指教。

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Server Application Error IIS密码不同步 MS D
    最近电脑出了一系列的问题,IIS能启动,但是不能正常访问.提示错误.记得没事养成看系统日志的习惯,先看系统日志有一些红色的叉叉,出现的频率非常高.MS DTC 事务管理器启动失败。LogInit 返回错误 0x2。具体的是什么服务,我就不写了,百度一下非常多. 我想出现这
    03-08
  • Visual Studio-IIS Express 支持局域网访问配置
    转自:http://www.itnose.net/detail/6132793.html注意:本人测试后,发现个问题,不知是我个人的VS问题还是普遍的。就是将配置文件中的新增的节点注释后,会导致页面调试的时候很难加载,一直转圈,出不来。痛苦使用Visual Studio开发Web网页的时候有这样的
    03-08
  • 开发 Web 服务 (SOAP) 并将其发布到 IIS
    开发 Web 服务 (SOAP) 并将其发布到 IIS
    1.首先我想将 SOAP 通信服务从用 Java/Axsis2 实现的遗留系统迁移到 C#我想将 SOAP 通信服务发布到 IIS 并使用 Soap UI 检查客户端的操作使用 .NET Framework 中包含的 ASP.NET asmx 提高开发效率.NETX 不包含 SOAP 通信工具二、开发环境 Visual Studio 2022.
    03-08
  • vs添加到附加进程调试(IIS页面调试) vs附加到进程调试不了
    vs添加到附加进程调试(IIS页面调试) vs附加到
    有时候单元测试不是很方便,通过页面调试接口会更直观,也跟容易发现问题(尤其是在页面传参的时候),这时vs添加到附加进程的调试方式就显得尤为重要了!步骤如下:1、首先是通过IIS建立网站,(前提是要先安装iis,网上教程很多且详尽)这里我已HYS.BT.V3项
    02-12
  • VS项目发布到本地IIS vs部署项目
    VS项目发布到本地IIS vs部署项目
      ①web项目,开发工具Visual Studio,语言C#  ②本地IIS,手机上或其他用户在和本地在同一个局域网(并不绝对是指同一个WIFI)内访问,同时要把防火墙关掉  ③IIS全名Internet Information Services,用来发布网站 二、步骤    1在开始菜单中搜索I
    02-10
  • Windows7下安装IIS出现“出现错误,并非所有的功能被成功更改
    Windows7下安装IIS出现“出现错误,并非所有的功
     1、开始,搜索输入UAC--选择 “更改用户账户控制设置” 2、调到最低 3、打开控制面板--》程序--》打开或关闭windows功能,去掉图里的2个选项,点确定,重启 4、重启后,再把这2个勾选上,注:indernet信息服务很多子项不勾选,需要手动展开到最底层进行
    02-10
  • IIS中实现http自动转换到https
    IIS中实现http自动转换到https修改以下文件:C:\WINDOWS\Help\iisHelp\common\403-4.htm 为以下内容!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"HTMLHEADTITLE该页必须通过安全通道查看/TITLEMETA HTTP-EQUIV
    02-10
  • IIS短文件名漏洞 IIS主要漏洞
    IIS短文件名漏洞 IIS主要漏洞
    Internet Information Services(IIS,互联网信息服务)是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件。危害:攻击者可以利用“~”字符猜解或遍历
    02-10
  • 错误">IIS 发布网站出现<compilation debug="tr
    参考:http://www.mamicode.com/info-detail-1180214.html原因是环境只安装到.net Framework 4.5 的版本(.net版本向下兼容 )解决方案:升级.net Framework修改为compilation debug="true" targetFramework="4.5"
    02-10
  • 在IIS上部署ASP.NET Core项目出现错误 500.19
    安装AspNetCoreModule托管模块
    02-10
点击排行