C# ASPX:获取cs文件的路径

C# ASPX:获取cs文件的路径,c#,asp.net,file,path,episerver,C#,Asp.net,File,Path,Episerver,如何在aspx中获取cs文件的路径 问题是:我在property.cs文件中创建了一个property类,该文件用于epserver管理模块。因此,Server.MapPath()将返回执行文件的路径,该路径与我的代码位于完全不同的位置。我需要获取property.cs文件的路径(从property.cs文件内部),以便动态设置css和js文件的一些相对路径。如何做到这一点 因此,我希望能够在此cs文件中包含.js和.css文件,所有文件都位于同一目录中,但cs文件是从EPiServer UI访

如何在aspx中获取cs文件的路径

问题是:我在property.cs文件中创建了一个property类,该文件用于epserver管理模块。因此,Server.MapPath()将返回执行文件的路径,该路径与我的代码位于完全不同的位置。我需要获取property.cs文件的路径(从property.cs文件内部),以便动态设置css和js文件的一些相对路径。如何做到这一点


因此,我希望能够在此cs文件中包含.js和.css文件,所有文件都位于同一目录中,但cs文件是从EPiServer UI访问的。

ASP.NET已编译,您在运行时不需要从源文件读取设置,您应该从配置文件(*.config)读取设置,如果它们需要是动态的,也可以在页面生命周期中通过各种方法注入这些设置。

ASP.NET是编译的,您在运行时不需要从源文件中读取设置,如果需要是动态的,您应该从配置文件(*.config)中读取,这些也可以通过各种方法在页面生命周期中注入。

我强烈建议不要做您试图做的事情。您将构建对文件的脆弱依赖,这些文件甚至不应该与您的项目一起部署

如果您有依赖于javascript和css等资源的web类,则应使用ClientScriptManager(或用于ajax应用程序的ScriptManager)将其部署到页面上,并且应将脚本和css部署到它们自己的常规web目录中


如果部署位置有问题,并且您正在创建某种可重用、可再发行的模块,那么我建议您将.js和.css文件嵌入到程序集中,并使用脚本管理器以这种方式将脚本注册到页面,我强烈建议您不要做您试图做的事情。您将构建对文件的脆弱依赖,这些文件甚至不应该与您的项目一起部署

如果您有依赖于javascript和css等资源的web类,则应使用ClientScriptManager(或用于ajax应用程序的ScriptManager)将其部署到页面上,并且应将脚本和css部署到它们自己的常规web目录中


如果部署位置有问题,并且您正在创建某种可重用、可再发行的模块,那么我建议您将.js和.css文件嵌入到程序集中,并使用脚本管理器以这种方式将脚本注册到页面,我认为您应该使用包含css的,JS和其他静态文件作为嵌入式资源

这将包括DLL中的文件,这使得部署更容易。然后,您可以设置一个HTTP处理程序,该处理程序将为您提供嵌入文件的内容,或者使用前面提到的RegisterScriptResource()方法


通过嵌入文件,您不必知道任何文件路径

我认为您应该将CSS、JS和其他静态文件作为嵌入资源

这将包括DLL中的文件,这使得部署更容易。然后,您可以设置一个HTTP处理程序,该处理程序将为您提供嵌入文件的内容,或者使用前面提到的RegisterScriptResource()方法


通过嵌入文件,您不必知道任何文件路径

True,但我在这里制作了一段可重用的代码。由于它是一个属性(在EPiServer中),将有自己的UI,我希望用户能够在不必编辑路径的情况下包含它,因此我认为如果js和css文件与定义该属性的代码位于同一目录中,并且代码可以从同一目录中获得所需的所有内容,这将是最简单的,但我在这里制作一段可重用的代码。由于它是一个属性(在EPiServer中),将有自己的UI,我希望用户能够包括它,而无需编辑路径等,我想如果js和css文件与定义属性的代码位于同一目录中,并且代码可以从同一目录中获得所需的所有内容,那么这将是最简单的。我很感激你的回答,但我认为你误解了我。事实上,我非常乐意像你说的那样注册脚本文件。问题在于路径。当从EPiServer程序集调用此文件时,我如何从myproperty.cs内的编码中知道与myproperty.cs位于同一目录中的script.js和mycss.css的路径,并且MapPath()将返回当前正在myproperty.cs中调用代码的aspx文件?我目前(暂时)通过在LiteralControl中设置css的几行并将其添加到Page.Header中解决了这个问题。我的观点是.js和.css文件不应该与.cs文件有路径依赖关系。它们应该部署到一个众所周知的目录中,或者嵌入到程序集中。我理解。这在大多数情况下都是甜蜜的。但是如果您熟悉EPiServer,这意味着每次在新项目中复制和使用属性时都必须设置文件路径。如果有人更改了目录结构,并且在源代码中硬编码了这样的路径,那么这可能很脆弱。我希望路径与使用它的文件相对,这样我就可以正确地包含文件,但从我的理解来看,这不容易做到……我很感激你的回答,但我认为你误解了我。事实上,我非常乐意像你说的那样注册脚本文件。问题在于路径。当从EPiServer程序集调用此文件时,我如何从myproperty.cs内的编码中知道与myproperty.cs位于同一目录中的script.js和mycss.css的路径,并且MapPath()将返回当前正在myproperty.cs中调用代码的aspx文件?我目前(暂时)通过设置