ASP.Net MVC 5 - 使用捆绑的 JavaScript 和 CSS 部署单独的 CDN 站点

ASP.Net MVC 5 - Deploy separate CDN site with bundled JavaScript and CSS

我想知道是否可以部署两个 ASP.Net MVC 站点来执行以下操作。

  1. 主网站:包含所有控制器和视图
  2. CDN 网站:包含所有 JavaScript 和 CSS(第一个站点使用的捆绑 JS 和 CSS)

我原以为您的解决方案中会有两个网站项目。我认为在调试模式下这会工作得很好,因为包名称是一致的。

但是,在您未 运行 调试模式(在 web.config 中关闭)的生产环境中,文件名有一个查询参数,例如http://www.test-domain.com/bundles/bootstrap?v=2Fz3B0iizV2NnnamQFrx-NbYJNTFeBJ2GM05SilbtQU1(其中 bootstrap 是包的名称) .

有谁知道如何从主网站的 Razor 视图中引用 CDN 网站中的捆绑包?

回答 我意识到您不必包含 bundle name

的查询参数

如果您的 MVC 5 项目在 Release 模式下在您的本地计算机上运行良好,那么它也可以在 Production 上运行。

您在生产中需要注意的只有几个注意事项:

  • 确保 CORS 已启用,因为您在不同站点拥有 js 和 css 资源(如果域名不同)

  • 确保您在具有托管视图和后端逻辑的 MVC5 站点上的引用具有您在 CDN

    [ 中创建的正确引用=33=]
  • Firewall/hosting 允许两台主机上的端口进行通信。

希望对您有所帮助。

BTW querystring 附加到 URL 的末尾,只需确保每个请求都由服务器提供不同的服务而不是缓存,不会影响您的应用程序。