我在 DigitalOcean 上部署了 Strapi 后端和 Next.js 前端应用程序。在 DigitalOcean 上为前端设置了一个环境变量:API_URL = ${APP_URL}/api
我获取此变量来生成基本 url:
// constants.js
export const BASE_URL =
process.env.NODE_ENV === "production"
? process.env.API_URL
: "http://localhost:1337";
Run Code Online (Sandbox Code Playgroud)
它似乎工作正常,应用程序也从本地主机和部署中的后端获取内容。当我尝试加载图像时,问题就出现了,该图像的路径应该是基本 url 和获取的相对路径的连接。我为此创建了一个 utilitz 函数:
// utilities.js
import { BASE_URL } from "./constants";
export const getImageURL = (relPath) => `${BASE_URL}${relPath}`;
Run Code Online (Sandbox Code Playgroud)
当我将此函数用于 html img 标签时,它会在开发环境和生产环境中加载:
<img src={getImageURL(homePage.Hero[0].Image.url)} />
但是,当我尝试在同一组件中为 div 设置背景时,基本 url 未定义,并且图像不会出现在部署的站点中(在本地主机上工作正常)。
我不知道为什么 url 生成对于代码的某些部分可以,而对于其他部分则不行。
部署的构建命令是:yarn build && next export -o _static
这是完整的组件:
import styles from "../styles/Home.module.css";
import { getImageURL } from …Run Code Online (Sandbox Code Playgroud) javascript environment-variables node.js digital-ocean next.js
我需要为我的项目使用 C++ 17 的文件系统头文件。据我所知,Apple 终于在 Xcode 11 和 macOS Catalina 中提供了它。我使用的是最新的(beta 3)Xcode 11,我使用的是 macOS Catalina public beta 2,所以理论上它应该可以工作。但由于某种原因,它不是,Xcode 给出了如下错误:
'~path' is unavailable: introduced in macOS 10.15
Run Code Online (Sandbox Code Playgroud)
如果我将 Build Setting 中的 C++ 标准库从 libc++ 设置为 libstdc++,这些错误消息就会消失,我收到警告:
include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead
Run Code Online (Sandbox Code Playgroud)
以及在各种文件中缺少 iostream 和 cstddef 的大量错误。我该怎么做才能使文件系统工作?
编辑:一个最小的代码示例
#include <filesystem>
#include <iostream>
#include <string>
bool isPathDir(std::string pathString);
int main(int argc, char *argv[])
{
std::string pathString = "../test.jpg"; …Run Code Online (Sandbox Code Playgroud) 我有一个用于机器学习项目的简单 Python 代码。我有一个相对较大的自发演讲数据库。我开始训练我的语音模型。由于它是一个巨大的数据库,我让它在一夜之间工作。早上醒来看到一个神秘的
杀死:9
线在我的终端。没有其他的。没有其他错误消息或可以使用的内容。代码运行良好约 6 小时,占整个过程的 75%,所以我真的不明白出了什么问题。
什么是 Killed:9 以及如何修复它?失去数小时的计算时间是非常令人沮丧的......
如果有问题,我正在使用 macOS Mojave 测试版。先感谢您!
我有 2 个组件,一个父组件和一个子组件。相同的父组件应该加载到 2 个不同的路由上,假设路由 1 和路由 2。父组件检查使用了哪个路由并设置一个关于 (isRoute1) 的布尔值。子组件获取此布尔值作为输入并渲染 HTML。请参阅下面的框架代码。
首先假设我在浏览器中打开route1。我可以在控制台中看到“Parent init”和“Child init”文本,并且子组件呈现“ROUTE1”。一切都按预期进行。接下来,我在浏览器中导航到路线 2(直接从路线 1),并且得到了一些意想不到的结果。在控制台中,没有显示任何内容(因此 OnInits 没有触发),但是子进程呈现了“ROUTE2”。为什么 Angular 没有触发 OnInit() 函数?我怎样才能做到这一点?我认为在路线更改时,父组件将重新加载,因此子组件也会重新加载。
// Parent component's TS
isRoute1: boolean;
ngOnInit(): void {
console.log('Parent init')
this.router$.pipe(debounceTime(1), untilDestroyed(this)).subscribe(route => {
this.isRoute1 = route.params.id === 'route1';
});}
// Parent component's HTML
<child-component [isRoute1]="isRoute1"></child-component>
// Child component's TS
@Input()
isRoute1: boolean;
ngOnInit(): void {
console.log('Child init')
}
// Child component's HTML
<div *ngIf="isRoute1; else route2"> ROUTE1 </div>
<div #route2> ROUTE2 </div>
Run Code Online (Sandbox Code Playgroud)