我看到了这个解决方案的所有答案,但没有为我工作.
1 - 我的配置部署与DigitalOcean(Capistrano 3,Nginx和Puma)的本教程相同,部署成功,我的网页出错:
发生了未处理的低级错误.应用程序日志可能包含详细信息
在日志中:
机架应用程序错误:#<RuntimeError:缺少
secret_token和secret_key_base'生产'环境,请在config/secrets.yml>中设置这些值
2 - 在我的Droplet或VPN中,我使用rake secret文件中的key()创建了变量./bashrc
export SECRET_KEY_BASE=XXXXXX
Run Code Online (Sandbox Code Playgroud)
文件 /config/secrets.yml是默认的
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
Run Code Online (Sandbox Code Playgroud)
有了这个env变量,我检查了比这工作(echo $SECRET_KEY_BASE或printenv | grep SECRET_KEY_BASE)
3 - 重新启动Puma和Nginx并且此错误未解决后,我不知道检查或调试此错误的最佳方法是什么.
是否本教程不使用此解决方案的工作?
deployment capistrano ruby-on-rails nginx environment-variables
我的目标是使用 Vue.js 或 Nuxt.js的First Contentful Paint 的最佳解决方案
我认为最好的解决方案是在加载第一个元素后使用 import 加载组件。
我不知道是否是最好的解决方案,我想听听您的意见。
什么是最好的编码方式?
试:
文件是加载的app.js,怎么只加载一次我设置的true?
<template>
<h1>Hello World</h1>
<!-- First content here -->
<foo v-if="documentLoaded" />
</template>
Run Code Online (Sandbox Code Playgroud)
mounted() {
document.onreadystatechange = () => {
if (document.readyState == "complete") {
console.log('Page completed with image and files!')
setTimeout(() => {
this.documentLoaded = true
}, 2000);
}
}
},
components: {
Foo: () => import(/* webpackChunkName: "component-foo" */ '~/components/foo')
}
Run Code Online (Sandbox Code Playgroud)