Vue.js 为什么我的前端代码在本地与生产环境中的表现不同?
目前我只有一个BootstrapVue VueJS前端项目,我有4张扑克牌,理想情况下我希望保留在一行上(就像本地一样),但在生产中查看时会堆叠(如果有区别,使用Heroku) 目前的代码如下所示:Vue.js 为什么我的前端代码在本地与生产环境中的表现不同?,vue.js,heroku,bootstrap-vue,Vue.js,Heroku,Bootstrap Vue,目前我只有一个BootstrapVue VueJS前端项目,我有4张扑克牌,理想情况下我希望保留在一行上(就像本地一样),但在生产中查看时会堆叠(如果有区别,使用Heroku) 目前的代码如下所示: <div flex-wrap="nowrap" class="row d-flex nowrap mt-3" justify-content="space-between"
<div
flex-wrap="nowrap"
class="row d-flex nowrap mt-3"
justify-content="space-between"
width="100vw"
>
<b-container>
<b-row>
<b-col>
<PlayingCard/>
</b-col>
....etc for the other cards....
</b-row>
</b-container>
</div>
..等其他卡。。。。
我已经玩了很多不同的类,证明内容和所有的东西,但不断得到不同的本地与产品的结果。我可以确认Heroku上的代码是最新的,因为它会随着每次新提交重新部署,而且我在尝试修复此样式问题后添加了一些新功能,这些功能会正确显示。这样的样式问题最常见于CSS的范围问题。如果您在本地检查元素,您可能会看到仅应用了本地样式,而如果您在生产中检查元素,您会看到选择器包含更多CSS(由于两个不同组件中的选择器相同),或者另一个选择器一起应用 您会遇到这个问题,因为在开发模式下,它只加载您正在查看的组件的CSS。在生产模式中,所有组件的所有CSS都是组合的 要解决此问题,您有几个选项:
范围属性。Vue将自动在组件上添加数据属性,并使用该数据属性确定样式范围。这通常不能很好地处理从以前位置移出的弹出窗口之类的东西
导出默认值{
//...
}
钮扣{
//这仅为该组件中的按钮设置样式,而不是应用程序中的每个按钮
}
导出默认值{
姓名:'卡'
}
公司卡{
钮扣{
//现在,作为我们组件的后代的所有按钮都已设置样式。
}
}
这样的样式问题最常见的原因是CSS的范围问题。如果您在本地检查元素,您可能会看到仅应用了本地样式,而如果您在生产中检查元素,您会看到选择器包含更多CSS(由于两个不同组件中的选择器相同),或者另一个选择器一起应用
您会遇到这个问题,因为在开发模式下,它只加载您正在查看的组件的CSS。在生产模式中,所有组件的所有CSS都是组合的
要解决此问题,您有几个选项:
范围属性。Vue将自动在组件上添加数据属性,并使用该数据属性确定样式范围。这通常不能很好地处理从以前位置移出的弹出窗口之类的东西
导出默认值{
//...
}
钮扣{
//这仅为该组件中的按钮设置样式,而不是应用程序中的每个按钮
}
导出默认值{
姓名:'卡'
}
公司卡{
钮扣{
//现在,作为我们组件的后代的所有按钮都已设置样式。
}
}
因此,我使用了作用域路由并将代码移到其中,修复了我在作用域样式上遇到的“属性值无效”错误。从我的观点来看,本地vs prod在这一点上看起来是完全相同的,但是我仍然有完全相同的问题。代码中唯一存在的“flex wrap”值是nowrap的作用域样式,这是我想要的,但生产仍然无法按预期运行。因此,我使用作用域路由并将代码移到其中,修复了我在作用域样式上遇到的“无效属性值”错误。从我的观点来看,本地vs prod在这一点上看起来是完全相同的,但是我仍然有完全相同的问题。代码中唯一存在的“flex wrap”值是nowrap的作用域样式,这正是我想要的,但生产仍然无法按预期运行。
<template>
<div>
<!-- something here -->
</div>
</template>
<script>
export default {
//...
}
</script>
<style scoped>
button {
// This only styles the buttons in this component, rather than every button in the application
}
</style>
<template>
<div class="comp-card">
<!-- something here -->
</div>
</template>
<script>
export default {
name: 'Card'
}
</script>
<style lang="scss">
.comp-card {
button {
// All buttons that are descendants of our component are now styled.
}
}
</style>