尝试使用 Windows 7 为 Symfony2 项目转储资产时出现运行时异常

Posted

技术标签:

【中文标题】尝试使用 Windows 7 为 Symfony2 项目转储资产时出现运行时异常【英文标题】:Runtime exception when trying to dump assetic for Symfony2 project using Windows 7 【发布时间】:2015-03-31 21:53:01 【问题描述】:

我使用的是Windows平台(请不要笑我)。我正在尝试在运行 Windows 7 的本地计算机中使用asseti 构建一个 Symfony2 项目。

现在我无法为我生命中的挚爱弄清楚为什么它没有转储资产文件。它总是说某种运行时异常。我认为这与咖啡箱和节点路径有关。这是为咖啡箱和节点设置路径的正确方法吗?

framework:
    [...]


# Twig Configuration
twig:
    [...]

# Assetic Configuration
assetic:
    debug:          "%kernel.debug%"
    use_controller: true
    bundles: [...]


    filters:
        sass:
            load_paths: [ "%kernel.root_dir%/../src/xxxxx/WebsiteBundle/Resources/public/vendor/" ]
            compass: true
        coffee:
            bin: C:\Users\xxxxx\AppData\Roaming\npm\coffee
            node: C:\Program Files\nodejs\node
        cs-s-rewrite: ~


# Doctrine Configuration
[...]

php composer.phar 安装工作正常

php app/console asset:install 工作正常

php app/console assetic:dump 给我以下错误:

[运行时异常]

无法写入文件 C:/xampp/htdocs/xxxxx/app/../web/js/3b27a3f_js?key=AIzaSyCk9Cxgv09X9DKar1bcsLAXxlqP3YhF0OI_1.js

我最初的感觉是咖啡箱和节点路径有问题。

下面是我机器中的位置。

我不知道发生了什么。我将向您转储任何可能有助于解决此问题的输出。我在这里感觉很无语。我正在使用 SASS、指南针、咖啡等。

【问题讨论】:

我的同事最近遇到了类似的问题,尝试以管理员身份运行cmd(我没有windows) 我一直在 Windows 中以管理员身份运行这些。没有效果。 能否请您复制粘贴错误信息以替换图像?当 Symfony2 尝试创建 .../3b27a3f_js?key=AIzaSyC... 文件时出现错误,这不是一个有效的文件名。 将 -v 选项 (--verbose) 添加到转储命令。它将显示堆栈跟踪。 【参考方案1】:

Symfony2 与 Assetic 的集成

1.文件config.yml

# Assetic Configuration
assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ ]
    #java: /usr/bin/java
    filters:
        cs-s-rewrite: ~
    less: 
        node: "C:\\Program Files (x86)\\nodejs\\node.exe"
        node_paths: ["C:\\Users\\websky\\AppData\\Roaming\\npm\\node_modules"] 
        apply_to:   "\.less$"
    yui_css: 
        jar: %kernel.root_dir%/../java/yuicompressor-2.4.6.jar 
    yui_js: 
        jar: %kernel.root_dir%/../java/yuicompressor-2.4.6.jar 
        #closure:
        #    jar: "%kernel.root_dir%/Resources/java/compiler.jar"

2. 文件 base.html.twig

    <head> 
        % stylesheets filter='less,?yui_css' '@AcmeBundle/Resources/less/main.less' % 
        <link href=" asset_url " rel="stylesheet" media="screen" /> 
        % endstylesheets % 
    </head> 

3.构建资产

php app/console assetic:dump --env=prod

有用的链接: Less Windows Node.js Hanging

【讨论】:

【参考方案2】:

试试这个

coffee:
   bin: "C:\\Users\\xxxxx\\AppData\\Roaming\\npm\\coffee"
   node: "C:\\Program Files\\nodejs\\node"

我在 node.js 上遇到了完全相同的问题。如果这不起作用,请尝试指向确切的 .exe 路径。 Windows 似乎有各种各样的麻烦。

祝你好运

【讨论】:

`咖啡:bin:“C:\\Users\\bhatt_000\\AppData\\Roaming\\coffee.cmd”节点:“C:\\Ruby193\\node\\node.exe “`我试过这个。它不起作用。同样的错误

以上是关于尝试使用 Windows 7 为 Symfony2 项目转储资产时出现运行时异常的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Assetic + sass 在 Windows 中与 Symfony2 一起工作?

Symfony2 2.3.7 -Doctrine 2.4.1:ManyToMany 关系未保存到数据库

Symfony2:如何为整个应用程序强制使用 HTTPS?

PHP symfony2 引导资产:转储错误

Symfony2 Monolog 配置为使用 raven 处理程序(Sentry)

Symfony2 - 为用户和类别使用控制器安全性