Vue CLI 组件样式标记未限定范围未应用于 Rails CSP 错误

Posted

技术标签:

【中文标题】Vue CLI 组件样式标记未限定范围未应用于 Rails CSP 错误【英文标题】:Vue CLI component style tag NOT scoped not applied in Rails CSP error 【发布时间】:2021-11-16 01:16:30 【问题描述】:

我有一个带有 Vue 的 Rails 应用程序。当我尝试在 <style> 标记中添加某些内容时,它不会被应用。它在呈现的 html 中也不可见。我的依赖项中没有 css-loader,当我安装它时,整个应用程序都无法运行。

我的 index.html.erb

<%= stylesheet_pack_tag 'hello_vue' %>
<%= javascript_pack_tag 'hello_vue' %>

我的hello_vue.js

import Vue from 'vue'
import App from '../app.vue'

document.addEventListener('DOMContentLoaded', () => 
  const app = new Vue(
    render: h => h(App)
  ).$mount()
  document.body.appendChild(app.$el)

  console.log(app)
)

我的app.vue

<template>
  <div id="app">
  </div>
</template>

<script>

export default 


</script>

<style>
#app
  background: aqua;

</style>

我的 package.json 使用 css-loader(不起作用)


  "name": "name-of-project",
  "private": true,
  "dependencies": 
    "@rails/actioncable": "^6.0.0",
    "@rails/activestorage": "^6.0.0",
    "@rails/ujs": "^6.0.0",
    "@rails/webpacker": "5.4.3",
    "css-loader": "^6.3.0",
    "leaflet": "^1.7.1",
    "turbolinks": "^5.2.0",
    "vue": "^2.6.14",
    "vue-loader": "^15.9.8",
    "vue-template-compiler": "^2.6.14",
    "vue2-leaflet": "^2.7.1",
    "webpack": "^4.46.0",
    "webpack-cli": "^3.3.12"
  ,
  "version": "0.1.0",
  "devDependencies": 
    "@vue-leaflet/vue-leaflet": "^0.6.1",
    "webpack-dev-server": "^3"
  

(我删除了我的实际代码,但一开始也没有用)

当我在浏览器中使用检查编辑样式时,它可以工作。此外,当我添加内联样式时,它可以工作,例如:

我使用rails install:webpacker:vue 命令安装了 vue。当我只创建一个 vue 项目时,它工作得很好,但是,这次使用 vue 它似乎无法正常工作,我不知道为什么。

编辑: 这与样式标签因 CSP 而被阻止加载的事实有关。根据 Vue 的说法,这不应该发生,但确实发生了,并且在网络上没有答案。

【问题讨论】:

【参考方案1】:

好的,我的第一个答案已被版主 Jean-François Fabre 删除,所以我将在此处再次简单回复,因为这问题的解决方案,是的,我确实添加了指向外部网站的链接,但只是为了在应得的地方给予信任。

如果有人遇到同样的问题,我在Medium post 上找到了解决方案。最重要的部分是 rails/webpacker.README.mb 的屏幕截图 我在当前的 README.md 中找不到它

【讨论】:

以上是关于Vue CLI 组件样式标记未限定范围未应用于 Rails CSP 错误的主要内容,如果未能解决你的问题,请参考以下文章

[Vue 警告]:无法挂载组件:Vue CLI 4 中未定义模板或渲染函数

如何将 Vue.js 范围样式应用于通过视图路由器加载的组件?

vue样式穿透>>>

vue样式穿透>>>

vue cli build with target lib:导入组件时“未定义要求”

VUE/CLI .env 变量返回未定义