首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在子文件夹下承载asp .net核心应用程序

问如何在子文件夹下承载asp .net核心应用程序
EN

Stack Overflow用户
提问于 2017-10-05 20:10:39
回答 4查看 11.6K关注 0票数 16

我使用Kestrel在Linux上运行了一个asp .net核心应用程序。

它绑定到端口80上的ip ok。

但是nginx反向代理站点需要在非根路径下托管应用程序。

http://somesite.com/myapp

因此,这是好的,应用程序加载,但应用程序不知道myapp路径-所以尝试从根加载内容路径资源。因此,css资源等不会加载。

我如何在运行时配置该应用程序,以了解url路径。

更新:

我发现在Startup.configure中使用app.UsePathBase("/myapp");帮助,因为应用程序将处理这个路径上的请求,确定--但是静态文件请求是/myapp//myapp/example.jpg,它返回404。

图像文件夹位于www.root中--这是默认的,我对UseStaticFiles的理解是这样的。

我希望这个请求能够理解/myapp实际上是虚拟的。

EN

回答 4

Stack Overflow用户

发布于 2017-10-11 18:18:01

好的-所以为了让应用程序在一个“虚拟目录”下运行,必须做2件事:

在启动配置方法中,我必须为应用程序设置basepath,并为静态文件指定路径。

代码语言:javascript
复制
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
 ...
 app.UseStaticFiles("/myapp");
 app.UsePathBase("/myapp");
 ...
}

该应用程序也运行/以及-不确定这是否是可取的,但这不是一个大问题,我现在。

票数 10
EN

Stack Overflow用户

发布于 2020-02-11 14:02:04

对我来说(使用.NET核心3.1)有点不同,使用ScottC的回答,它找不到静态文件,因为它正在查找my-app目录的根目录,而不是my-app/wwwroot。

这个配置在Startup.cs中适用于我:

代码语言:javascript
复制
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    ...
    if (env.IsDevelopment())
    {
        ...
    }
    else
    {
        ...
        app.UsePathBase("/my-app");
    }

    app.UseStaticFiles();
    ...

}

票数 5
EN

Stack Overflow用户

发布于 2017-10-10 23:22:43

ScottC,

一旦您的web内容位于www.root之下,您就必须在Startup的配置部分添加app.UseStaticFiles()。

见下面的例子:

代码语言:javascript
复制
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseStaticFiles();
}

希望能帮助你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46593999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档