Symfony Encore / Webpack {{asset('build / app.js')}}没有给出有效路径,从浏览器加载资产时出错

时间:2018-02-16 21:01:52

标签: symfony webpack twig webpack-encore

刚开始使用Symfony和Encore / Webpack。

我按照Symfony的教程,我的webpack.config.js如下:

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

Encore
    .setOutputPath('public/build/')
    .setPublicPath('/build')

    .addEntry('app', './assets/js/app.js')
    .addStyleEntry('global', './assets/scss/global.scss')

    .enableSassLoader()
    .enableLessLoader()
    .enablePostCssLoader()
    .enableReactPreset()

    .autoProvidejQuery()

    .enableBuildNotifications()

    .cleanupOutputBeforeBuild()
    .enableSourceMaps(!Encore.isProduction())
    .enableVersioning(Encore.isProduction())

    .createSharedEntry('vendor', [
        'materialize-css',
        './assets/js/global.js',
    ])
;

module.exports = Encore.getWebpackConfig();

我的基本观点是:

{% extends 'base.html.twig' %}
{% block body%}
Start

{% endblock %}

{% block stylesheets %}
    <link rel="stylesheet" href="{{ asset('build/global.css') }}">
{% endblock %}
{% block javascripts %}
    <script src="{{ asset('build/app.js') }}"></script>
{% endblock %}

我的问题是,即使这两个文件与文档中的教程几乎相同,在localhost上进行测试时,我在加载css和js假定的输出文件时出错。

我的manifest.json有这个,这些文件存在并在正确的位置编译好:

"build/app.js": "/build/app.b9fa9f82050709ad01b8.js",
"build/global.css": "/build/global.ae6834d55ea0d4ff4100ad77aeffad72.css"

chrome console的输出:

GET http://localhost/my-website/public/build/app.js net::ERR_ABORTED         localhost/:11
GET http://localhost/my-website/public/build/global.css net::ERR_ABORTED     localhost/:6

1 个答案:

答案 0 :(得分:0)

我刚刚删除了我的项目,以相同的方式重新配置,现在可以正常工作......