首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在部署到不同目录结构时更改依赖路径,而不是在

在部署到不同目录结构时更改依赖路径,而不是在
EN

Stack Overflow用户
提问于 2011-06-09 15:51:41
回答 1查看 69关注 0票数 0

在部署到不同目录结构时,在脚本语言中处理依赖路径更改的流行方法(及其注意事项)是什么?

让构建工具进行文本替换?(比如用蚂蚁代替?)

例如,HTML标记中的src路径可能需要更改,也可能是javascript文件中的AJAX路径和PHP文件中的包含路径。

更新

我差不多已经安排好了我需要的东西。

剩下的唯一问题是通过AJAX发布到的URL。目前,这个URL在一个JS配置文件中,还有许多其他参数。然而,它是在开发、质量保证和生产之间变化的唯一参数。

不幸的是,像@prodigitalson建议的那样,动态生成的URL在这里是不可取的--我必须支持多个服务器端技术,这会变得很麻烦。

目前,我倾向于将URL参数放入自己的JS文件中,为每个开发、QA和生产部署不同版本的URL参数,并在部署时连接到主配置文件。

EN

回答 1

Stack Overflow用户

发布于 2011-06-09 16:32:01

如果你需要这样做,那么你的发展方向是错误的。所有这些shoul都在配置文件中管理。在方面,您应该有一些亲属dof助手,它根据配置值输出路径.例如:

代码语言:javascript
复制
<?php echo image_tag('myimage.jpg', array('alt'=>'My Image')); ?>
<?php echo echo javascript_include('myscript.js'); ?>

在这两种情况下,该函数将根据部署查找指向javascript和图像目录的路径。

对于链接,您应该根据应用程序的本地安装和一组参数(如:

代码语言:javascript
复制
<?php echo link_to('/user/profile', array('user_id' => 7)); // output a tag ?>
<?php echo url('/user/profile', array('user_id'=>7)); // jsut get the url ?>

就javascript而言,您不应该在js文件中有任何需要更改的硬编码路径。您应该使ajax或与路径相关的东西接受参数,然后从可以使用相同脚本配置的视图中发送这些参数。所以奥尤可能会有这样的东西:

代码语言:javascript
复制
<script type="text/javascript">
  siteNamespace.callAjax(
    '<?php echo url('/user/profile/like', array('user_id' => 7)); ?>',
    {'other': 'option'}
  );
</script>

通过这种方式,您可以根据任意数量的变量在中心位置更改所有这些。大多数MVC框架都会这样做,尽管代码看起来有些不同,配置选项也会有所不同。

我想看一看Zend -具体而言,Config、路由器和View Helpers,或Symfony 1.4及其Config、Routing和Asset和Url Helpers的实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6295672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档