gpt4 book ai didi

c# - 如何修改 ASP.NET MVC 静态文件根目录

转载 作者:太空狗 更新时间:2023-10-29 17:48:39 24 4
gpt4 key购买 nike

我希望能够重新组织我的 ASP.NET MVC 站点结构,以更接近 Rails 的工作方式(我们在我的公司同时使用 Rails 和 ASP.net)。

在 Rails 中,有一个作为站点根目录的“公共(public)”文件夹。例如,我可以放入“test.html”并使用 url http://domain.com/test.html 访问该文件。这将提供静态 html 文件。

在 asp.net MVC 中有一个“Content”文件夹,我想将其作为根文件夹。所以不是访问 http://domain.com/content/myfile.html ,我希望能够做到http://domain.com/myfile.html .

我知道我可以将文件放在项目的根目录中,但我需要对包括 css、js、html、图像等在内的许多文件执行此操作,并希望跨 Rails 和 aspnetmvc 共享一些标准化 Assets 。

有办法吗?

最佳答案

还有另一种可能的解决方案。除了使用代码,您还可以使用重写规则来为您处理此问题。如果您使用的是 IIS 7 或更高版本,则可以使用 Microsoft 的 URL 重写模块。

像下面这样的规则可能会做到这一点:

<rule name="Rewrite static files to content" stopProcessing="true">
<match url="^([^/]+(?:\.css|\.js))$" />
<conditions>
<add input="{APPL_PHYSICAL_PATH}content{SCRIPT_NAME}" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="/content/{R:1}" />
</rule>

该规则检查对站点根目录之外的 css 或 js 文件的请求。然后它检查文件是否存在于内容文件夹中。如果存在,则重写将返回内容文件夹中的文件。我只对此进行了一些测试,但它似乎有效。它当然需要更多的测试和可能的改进。

关于c# - 如何修改 ASP.NET MVC 静态文件根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6347998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com