我在IIS中托管了一个ASP.NET MVC应用程序。假设这是托管为www.mysite.com
。我正在尝试将.NET Core 2.0 Web应用程序作为子应用程序托管。
但是当我尝试以www.mysite.com/subaApp
方式访问它时,IIS正在寻找根路径中的所有静态文件(js
,css
等)(www.mysite.com
)。
如果有任何解决方案,请告诉我。 (我的.Net Core 2.0应用程序正在为Angular 5应用程序提供服务)
我的默认文件(index.html
)是作为Angular 5版本的一部分生成的,它看起来像这样:
<script type="text/javascript" src="inline.318b50c57b4eba3d437b.bundle.js"></script>
<script type="text/javascript" src="polyfills.bf95165a1d5098766b92.bundle.js"></script>
<script type="text/javascript" src="main.e0d3a51586e8e9fd039d.bundle.js"></script>
答案 0 :(得分:0)
在Razor处理的视图中,您可以使用&#34; home-relative&#34;用于确保放置正确URL(包括虚拟目录)的URL。例如:
<script src="~/path/to/my/script.js"></script>
在Razor处理视图后,最终会看起来像:
<script src="/subaApp/path/to/my/script.js"></script>
在常规C#代码中,您可以访问UrlHelper
实例(控制器,视图组件)或注入IUrlHelperFactory
并自己创建一个(在请求生命周期内运行的其他类,例如标记)帮助者),您可以使用Content
方法获取该上下文URL。
对于其他静态文件中的引用,例如CSS导入,CSS背景图像等,您应该使用路径相对URL。例如,如果您需要在wwwroot\images
的样式表中的wwwroot\css
中添加背景图片,那么您可以这样做:
background-image: url('../images/myimage.jpg');
换句话说,从当前目录(wwwroot \ css到wwwroot)上升到图像目录(wwwroot \ images)。
答案 1 :(得分:0)
VS内部使用Angular CLI来构建和部署角度文件。这样便可以在构建过程中修改索引文件。
您可以使用以下方式将客户端命令文件夹中的package.json文件更改为将构建命令设置为以下内容的内容
NULL
这将更改将在index.html文件中生成的JS和css文件路径的路径。
答案 2 :(得分:0)
在.NET Core应用程序的Program.cs文件中构建 Web主机时,应设置根目录。使用以下方法设置内容根。
UseContentRoot(Directory.GetCurrentDirectory()
您的Program.cs文件看起来应该与此类似。
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
}