ASP.Net MVC 5 - 使用捆绑的 JavaScript 和 CSS 部署单独的 CDN 站点
ASP.Net MVC 5 - Deploy separate CDN site with bundled JavaScript and CSS
我想知道是否可以部署两个 ASP.Net MVC 站点来执行以下操作。
- 主网站:包含所有控制器和视图
- 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 的末尾,只需确保每个请求都由服务器提供不同的服务而不是缓存,不会影响您的应用程序。
我想知道是否可以部署两个 ASP.Net MVC 站点来执行以下操作。
- 主网站:包含所有控制器和视图
- 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 的末尾,只需确保每个请求都由服务器提供不同的服务而不是缓存,不会影响您的应用程序。