我是 Nuxt 的新手 - 将我的 vue 应用程序转换为它,并使其投入生产:gameslate.io
该应用程序正在使用该asyncData方法来获取游戏列表 - 但是完整的布局并未呈现在服务器上......
如果您查看页面源代码,您会看到 Nuxt 将所有数据放入 中window.__NUXT__,但没有网格 html。
获取数据后如何在服务器上呈现完整布局asyncData?
否则,谷歌无法抓取游戏列表 - 这对 SEO 来说变得非常无用......(查看 twitter 的页面源 - 它加载整个页面,包括动态内容)
这是进行 asyncData 调用的“主页”页面组件(简化):
<template>
<div>things</div> <!-- rendered on server -->
<game-grid :games="games"></game-grid> <!-- rendered in browser -->
</template>
<script>
export default {
data() {
return {
games: []
}
}
async asyncData() {
let games = await getGames(filters);
return { games };
}
}
</script>
Run Code Online (Sandbox Code Playgroud) 这是一个重复的问题 - 例如: Laravel 4迁移 - 找不到类
但是,我已经尝试了所有解决方案(来自我能找到的每个论坛)并且无法解决这个问题.
我在我的本地机器上创建了一个Laravel 4项目 - 添加了一些类,控制器,视图等 - 项目运行良好.
然后我将这个新的repo复制到我的DO服务器上 - 用composer等安装依赖项.该项目看起来不错,除了一个页面发出错误:
Class 'company' not found
Symfony\Component\Debug\Exception\FatalErrorException
…/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php593
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看此页面.
我已经更新了作曲家.我试过"dump-autoload".我在composer.json文件中将'minimum-stability'更改为'stable'(是的,这是在论坛帖子上提出的解决方案).
其他解决方案与在composer.json文件中添加"psr-4"或"psr-0"有关,具体取决于作曲家版本 - 尝试了两者.
最令我难以置信的是,这个页面在我的本地机器上工作得很好,但在DO服务器上却不行....如果你们需要更多关于某些东西的信息来解决这个问题,请告诉我.
任何帮助表示赞赏:)
这就是我的composer.json文件的样子:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.0.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize" …Run Code Online (Sandbox Code Playgroud) 我正在创建一个分面搜索,我正在尝试array_intersect比较数组并找到匹配的输入.
问题是我随时会有可变数量的数组,具体取决于用户选择的过滤器:
$array_1, $array_2, $array_3 等等...
如何array_intersect在这种意义上创建一个动态的函数?
这就是我尝试过的:
$next_array = 0;
for($i = 0; $i < $array_count; $i++) {
$next_array++;
if ($i == 0) {
$full_array = ${array_.$i};
} else {
if(!empty(${cvp_array.$next_array})) {
$full_array = array_intersect($full_array, ${cvp_array_.$next_array});
}
}
}
Run Code Online (Sandbox Code Playgroud)
-------------编辑-------------
我会尝试更多地缩小我的目标:
如果用户单击三个过滤器,则会生成三个阵列,每个阵列都有单独的结果:
Array_1 ( [0] => 2, [1] => 4, [2] => 6 )
Array_2 ( [0] => 1, [1] => 4, [2] => 6 )
Array_3 ( [0] => 6, [1] => 7, [2] …
我正在尝试使用require和共享父控制器来连接两个指令.
我在其他项目中已经完成了这么多次,但对于我的生活,我无法让这个工作......
指令控制器this返回undefined,这反过来使得很难将方法传递给子指令...
这是我的父指令的代码:
app.directive('defaultHeader', () => {
let defaultHeaderCtrl = ($scope, $element) => {
let containEl,
elHeight = 500;
console.log(this) // returns 'undefined'
function resizeElement(el, height) {
el[0].style.height = `${height}px`
}
if (_.isUndefined($scope.coverImgUrl)) {
resizeElement($element, elHeight);
} else {
}
};
return {
restrict: 'A',
scope: {
coverImgUrl: '='
},
controller: defaultHeaderCtrl
};
});
Run Code Online (Sandbox Code Playgroud)
这个小提琴表明指令控制器this应该返回构造函数.
如果有人有兴趣,这里有一些背景:
<div default-header data="data"></div>谢谢您的帮助