【问题标题】:Alter Js/css path or overwrite on request in mvc 5 asp.net在 mvc 5 asp.net 中更改 Js/css 路径或根据请求覆盖
【发布时间】:2020-01-17 13:48:13
【问题描述】:

假设我有一个页面,其中 css/js 路径如下所示

~/js/view/jscript.js
~/css/View/Style.css

现在我们已经将这些文件移动到 cdn 中了。

如果我们在本地工作它应该使用 ~/file 并且如果在服务器上它应该使用 cdn 路径,我们需要什么?

是否有任何方法可以捕获每个文件请求以便对其进行转换

我正在寻找基于配置的东西来重写 url

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    使用 Web.config Transforms 在每个 Web.Debug.config 和 Web.Release.config 中使用适当的 URL 设置 appSettings 键,并在您的视图代码中引用它。

    using System.Configuration;
    
    @{ 
        var jsPath = ConfigurationManager.AppSettings["jsPath"];
        var cssPath = ConfigurationManager.AppSettings["cssPath"];
    }
    
    <script src="@jsPath"/>
    <link rel="stylesheet" type="text/css" href="@cssPath">
    

    供本地使用 Web.Debug.config

    <appSettings>
        <add key="jsPath" src="~/js/view/jscript.js" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
        <add key="cssPath" src="~/css/View/Style.css" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
    </appSettings>
    

    用于生产使用 Web.Release.config

    <appSettings>
        <add key="jsPath" src="https://cdnpath.com" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
        <add key="cssPath" src="https://cdnpath.com" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
    </appSettings>
    

    另外一个好处是,您可以随时更改 appSettings 键来更改资源的路径,而无需重新编译或重新部署。

    【讨论】:

    • 我的应用中有很多 css 文件和 js 在多个页面中,我正在寻找一些 url 重写
    猜你喜欢
    • 2015-07-20
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 2021-12-26
    • 2019-08-04
    • 1970-01-01
    相关资源
    最近更新 更多