asp.net MVC 捆绑包不会为 https 渲染。
这是我的代码:
bundles.Add(new StyleBundle("~/Content/css/css").Include("~/Content/css/custom.css"));
视图
@Styles.Render("~/Content/css/css")
我得到的错误代码是:
混合内容:
'https://domain/'
的页面是通过 HTTPS 加载的,但请求了一个不安全的样式表'http://domain:443/Content/css/custom.css'
。此请求已被阻止;内容必须通过 HTTPS 提供。
你有 ~/Content/css/css 作为你的应用程序中的真实路径吗?
IIS 可能正在尝试处理该请求。
重命名您的捆绑包或应用程序中的文件夹,它应该可以工作。
所以试试这个:
bundles.Add(new StyleBundle("~/Content/core.css").Include("~/Content/css/custom.css"));
那么在您看来:
@Styles.Render("~/Content/core.css")
样式包名称可以是您想要的任何内容,它不必与 CSS 文件的实际位置相关。
更新
如果您收到混合内容错误,那是因为您的某些内容是通过HTTPS发送的,而其他内容是通过HTTP传入的。
克服此问题的最佳方法是在所有内容上使用//。
例如,假设您有这样的图像
<img src="http://website.com/images/smiley.gif">
也改变它
<img src="//website.com/images/smiley.gif">
这应该会阻止您的混合内容警告。
使用不同的捆绑文件夹
喜欢, 更新
bundles.Add(new StyleBundle("~/Content/css/css").Include("~/Content/css/custom.css"));
自
bundles.Add(new StyleBundle("~/CssBundles/css/css").Include("~/Content/css/custom.css"));
如果使用捆绑包位置的现有项目文件夹,则会发生此问题。