IIS部署vue项目页面刷新404,url重写问题解决办法

nginx

    location / {
        try_files $uri $uri/ /index.html;
    }

 

web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="404" patternSyntax="Wildcard">
                    <match url="*" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/" />
                </rule>
                <rule name="http重定向https" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

这里需要用到URL重写工具 --URL Rewrite(默认没有,需要自己下载安装)

如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开IIS在管理器主页中找到管理项,打开Web平台安装程序,如下图:

搜索url—找到url重写


在这里插入图片描述

对当前项目进行url重写—添加规则–空白规则

完成后.点击右侧 应用–返回规则

### SCSS 中的深度选择器样式穿透使用方法 在前端开发中,当需要通过父级组件的样式来影响子组件的内部结构时,通常会用到 **深度选择器** 来实现样式穿透效果。以下是关于 SCSS 中深度选择器的具体使用方式: #### 1. 使用 `::v-deep` 实现样式穿透 对于 Vue 的单文件组件(`.vue` 文件),如果启用了 `scoped` 属性,则默认情况下 CSS 样式仅应用于当前组件的作用域内。此时可以通过 `::v-deep` 深度选择器来突破这一限制并修改子组件中的样式。 示例代码如下: ```scss <style scoped> .my-component { ::v-deep .child-class { color: red; font-size: 18px; } } </style> ``` 上述代码表示 `.my-component` 组件内的样式将会穿透至其子组件中名为 `.child-class` 的类,并应用指定的颜色和字体大小[^3]。 --- #### 2. 使用 `/deep/` 或 `>>>` 实现样式穿透 虽然现代推荐的方式是使用 `::v-deep`,但在某些旧版本项目或者特定场景下也可以采用 `/deep/` 或者 `>>>` 符号作为替代方案。 示例代码如下: ```scss <style scoped> .parent-class >>> .child-class { background-color: blue; } /* 另一种写法 */ .parent-class /deep/ .child-class { padding: 10px; } </style> ``` 需要注意的是,`>>>` 和 `/deep/` 已被标记为废弃语法,在未来可能会失去支持,因此建议优先考虑 `::v-deep`[^4]。 --- #### 3. 动态控制子组件样式 (以 Element UI 的 Dialog 为例) 假设我们需要调整第三方如 Element UI 提供的对话框 (`el-dialog`) 高度以及滚动条行为,可以借助深度选择器完成定制化需求。 具体实现如下所示: ```scss <template> <div class="custom-dialog"> <!-- 对话框 --> <el-dialog title="提示" :visible.sync="dialogVisible"></el-dialog> </div> </template> <style lang="scss" scoped> .custom-dialog { ::v-deep .el-dialog { width: 50%; /* 调整宽度 */ &__header { text-align: center; /* 自定义头部居中显示 */ } &__body { max-height: 300px; /* 设置最大高度 */ overflow-y: auto; /* 启用垂直滚动条 */ } } } </style> ``` 此片段展示了如何利用 `::v-deep` 结合嵌套规则灵活改变原生组件外观属性的同时保持良好的可维护性和扩展性。 --- #### 总结 无论是哪种形式的选择符——`>>>, /deep/, ::v-deep` ——它们的核心目的均是为了让外部定义好的全局或局部CSS能够有效作用于深层嵌套HTML节点上而不受Vue组件隔离机制干扰。随着技术迭代推进, 推荐开发者采纳标准化程度更高的`::v-deep`, 并注意兼容性测试确保跨浏览器一致性表现良好.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值