我想让codesleeve asset-pipeline在我的网站上运行。浪费了一整天后,我终于在我的本地开发服务器上工作了。我现在上传了项目,看看是否所有内容都在实时服务器上运行。猜猜它没有。我猜这个问题与环境设置有关,即:
$env = $app->detectEnvironment(array(
'local' => array('your-machine-name'),
));
所以,我在本地服务器上将其更改为我的机器名,正如我所说,我已经工作了。那么在实时服务器上,这应该是什么? “localhost” 的?我尝试使用我的实时服务器的IP地址和域名为“live”添加另一个数组密钥,根据这个答案:http://tinyurl.com/pg6hwum没有任何作用。
另外,根据我关注的教程:
当您在本地环境中时,您会注意到所有资产文件都将单独包含在内...一旦您进入生产环境,您的所有资产将被连接成一个。
对我来说似乎也不是这样,因为管道似乎是半工作的,即。它连接了我的js和css文件,但不知何故弄乱了它们。
我真的很感激一些指针,因为我现在浪费了大量的时间。感谢。
答案 0 :(得分:1)
首先将bootstrap/start.php
文件的环境设置设置为以下内容:
$env = $app->detectEnvironment(array(
'local' => array('http://localhost', '*.local', 'http://local.sitename'),
'development' => array('http://dev.sitename.com'),
'production' => array('http://www.sitename.com', 'http://sitename.com'),
));
其次,您需要检查您的laravel正在运行的环境,以检查您的环境设置是否正常运行。通过这样做:
App::environment()
通过这样做......你现在应该知道是什么导致了codeleeve资产管道的问题。
注意:有关详细信息,请参阅有关环境的文档here
答案 1 :(得分:1)
与其他环境(如本地环境)相比,生产时开箱即用的资产管道的行为会有所不同。我已经提出了一份提案来记录其中一些pain points and troubleshooting for new comers。
如果您使用的是最新版本,那么在切换环境时会有两个重大的行为更改:
缓存 - 缓存生产资产。这意味着一旦你加载了一个页面,你就会被这些资产困住,直到你做到
$> php artisan assets:clean
这就是为什么在开发时应将环境设置为local
。
缩小 - 资产仅在生产时缩小。这可能会导致问题,因为minifiers有时会破坏代码。您可以采取一些解决方法来解决此问题。当我遇到某个文件(比如Twitter Bootstrap)时,我通常会做的事情就是使用.min.css
扩展名,然后由缩放器跳过,然后写出 as-is 。
请注意,此行为开箱即用,可以通过编辑配置轻松修改。
$> php artisan config:publish codesleeve/asset-pipeline
然后编辑您的文件app/config/packages/codesleeve/asset-pipeline/config.php
。有关这些选项的更多信息,请访问documentation here。
希望这有帮助。