Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Holder.js图像未在Symfony项目中渲染_Php_Html_Symfony_Node Modules_Holder.js - Fatal编程技术网

Php Holder.js图像未在Symfony项目中渲染

Php Holder.js图像未在Symfony项目中渲染,php,html,symfony,node-modules,holder.js,Php,Html,Symfony,Node Modules,Holder.js,我创建了一个Symfony 4项目,其中包含Encore网页。下面给出了我的项目中微帖子页面的模板。如您所见,我使用holder.js来显示图像占位符,但它们根本不显示 {% extends 'base.html.twig' %} {% block body %} {% for post in posts %} <div class="media text-muted pt-3"> <img data-src="holder.j

我创建了一个Symfony 4项目,其中包含Encore网页。下面给出了我的项目中微帖子页面的模板。如您所见,我使用holder.js来显示图像占位符,但它们根本不显示

{% extends 'base.html.twig' %}

{% block body %}
    {% for post in posts %}
        <div class="media text-muted pt-3">
            <img data-src="holder.js/32x32?text=MJ&bg=e83e8c&fg=fff&size=8" alt="" class="mr-2 rounded">
            <p class="media-body pb-3 mb-0 small lh-125 border-bottom border-gray">
                <span class="d-block"><strong class="text-gray-dark">@username</strong> <small>{{ post.time|date("d/m/y") }}</small></span>
                {{ post.text }}
            </p>
        </div>
    {% endfor %}
{% endblock %}

一切看起来都很好,但您没有包括整个网页包配置。只需确保在webpack.config.js文件中注释掉以下行:

//.enableSingleRuntimeChunk()
完成后,再次运行encore,然后holder应正确渲染图像

vagrant@homestead:~/badland retail$./node\u modules/.bin/encore dev

var Encore = require('@symfony/webpack-encore');

Encore
// directory where compiled assets will be stored
.setOutputPath('public/build/')
// public path used by the web server to access the output path
.setPublicPath('/build')
// only needed for CDN's or sub-directory deploy
//.setManifestKeyPrefix('build/')

/*
 * ENTRY CONFIG
 *
 * Add 1 entry for each "page" of your app
 * (including one that's included on every page - e.g. "app")
 *
 * Each entry will result in one JavaScript file (e.g. app.js)
 * and one CSS file (e.g. app.css) if you JavaScript imports CSS.
 */
.addEntry('js/app',
    [
        './node_modules/jquery/dist/jquery.slim.js',
        './node_modules/popper.js/dist/popper.min.js',
        './node_modules/bootstrap/dist/js/bootstrap.min.js',
        './node_modules/holderjs/holder.min.js'
    ])

.addStyleEntry('css/app', [
    './node_modules/bootstrap/dist/css/bootstrap.min.css',
    './assets/css/app.css'
    ])

// will require an extra script tag for runtime.js
// but, you probably want this, unless you're building a single-page app
//.enableSingleRuntimeChunk()

/*
 * FEATURE CONFIG
 *
 * Enable & configure other features below. For a full
 * list of features, see:
 * https://symfony.com/doc/current/frontend.html#adding-more-features
 */
.cleanupOutputBeforeBuild()
.enableBuildNotifications()
.enableSourceMaps(!Encore.isProduction())
// enables hashed filenames (e.g. app.abc123.css)
.enableVersioning(Encore.isProduction())

// enables Sass/SCSS support
//.enableSassLoader()

// uncomment if you use TypeScript
//.enableTypeScriptLoader()

// uncomment if you're having problems with a jQuery plugin
//.autoProvidejQuery()

// uncomment if you use API Platform Admin (composer req api-admin)
//.enableReactPreset()
//.addEntry('admin', './assets/js/admin.js')
;

module.exports = Encore.getWebpackConfig();

给出了指向app.js的错误路径-
build\js\app.js
。通过向基本模板添加有效的app.js路径解决:

base.html.twig

...

{% block javascripts %}
    <script src="{{ asset('build/app.js') }}"></script>
{% endblock %}

</body>

。。。
{%block javascripts%}
{%endblock%}

我已经注释掉了这一行并运行了您指定的命令,但没有效果。我用webpack.config.js编辑了我的答案,这对我来说很好。另外,请确保您的网站和应用程序在symfony插件中的目录设置正确,这也是我在学习本课程时遇到的挫折<代码>在设置中:
语言和框架->PHP->Symfony
我的应用程序目录是“bin”,我的web目录是public但是为什么PHPStorm默认文件夹是
App
web
?我正在Ubuntu18.04VM上的Vagrant+VirtualBox中运行我的项目。我不确定这是否有帮助。谢谢你的建议,如果有帮助的话,我会通知你的。我也是,我相信我们也在做同样的事情。课程内容中遗漏了一些本可以为我们所有人节省大量故障排除的内容,也许这些内容是留给学生们相互交流的,或者课程创作者只是忘记了。另外,我猜这些默认值适用于较旧版本的symfony,而symfony 4的结构不同。我不记得PHPStorm问我使用的是哪个版本,所以我认为它只是猜测。此时,我的应用程序运行良好,如果您想比较,我愿意将我的代码推送到github。我已经编辑了我的网页配置,但它仍然不会呈现图像占位符
...

{% block javascripts %}
    <script src="{{ asset('build/app.js') }}"></script>
{% endblock %}

</body>