我的回复

内容中添加广告代码,应该使用占位符,直接写代码并不是添加时麻烦,而是后期维护麻烦。

修改节点模版,在内容前后添加广告位是推荐的做法。如果希望广告位与内容有一定的融合,对广告位设置一个 float 属性让内容形成围绕效果也可以。

从站长运营和SEO的角度来讲,并不建议采用将广告插入正文这种伤害用户体验的做法。当然唯一好处就是可以增加用户误点广告的机率,从而增加收入。

大部分CMS,应该都不会提供将广告插到正文中的内置功能,多少需要做一些代码级的修改,可能国内CMS这类需求较多,有不少现成的代码和可以参考的文章。

就 Drupal 而言,修改抽象层实现正文插入广告可能有一定难度。简单点的做法可以将广告位分配到任意现有区域,通过JS将广告移动到正文中。虽然也涉及一些代码,但比控制页面输出要简单得多。同时,源码广告代码不位于正文中,对SEO的伤害也更小一些。

如果不用 Drupal,将广告放到文章中的办法可以是将广告位放置在文章附近,或者将广告代码嵌入到文章中,JS异步加载或者其它办法也都可以。

Drupal 最终也是输出 HTML页面,所以插入广告位的办法也是将相关代码放到想要的位置,只不过因为它作为框架,在不熟悉的情况下可能不太清楚怎么实现代码的插入。

按照以上思路,将广告位插入到文章中的方式就很多,以下是几个相对简单和常用的方式:

  • 编辑内容时直接插入广告代码(简单、灵活、使用不当会不易于后期维护)
  • 修改节点模板,增加对应的区域(region),直接将广告位分配到区域中
  • 使用 hook_node_view()HOOK_preprocess_node(),在输出内容中插入广告位区块或者广告代码
  • ……

问题问得过于笼统,没有更多条件的情况下,可以视为“如何进行网站迁移?”这样的问题。

将网站从A机迁移到B机,实际上是文件和数据库平移的过程,如果两边的配置完全相同(软件版本、安装路径、文件路径等等),一般直接平移后迁移就算完成了。

很多情况下,开发环境和生产环境会存在各种差异,这些差异会导致网站文件和数据库平移后网站不能正确打开,这时就需要根据实际情况,对配置进行调整,使网站最终正常打开迁移才算完成。

回到题主的问题,D8网站迁移到Linux服务器的步骤可以如下:

  1. 服务器上配置好基础环境(如LAMP),并创建好数据库
  2. 将本地D8的数据库导出,并导入到线上数据库中
  3. 将本地D8站点打包,上传到线上对应的站点位置
  4. 更新 sites/default/settings.php 配置文件中的数据库信息(如果线上与本地数据库、用户、密码完全一样,可以略过)
  5. 尝试打开网站(如果无法正常打开,检查Apache配置)
  6. 浏览网站及查看状态、日志,修复因配置(如路径、域名)变化导致网站出现的问题
  7. 结束

以上是比较通用迁移步骤,虽然麻烦但非常有用。有经验的团队会让两台设备间的差异最小化,从而提高迁移效率。

P.S. 尽量减少迁移设备之间的差异,可以减少大量调试工作。对于经验比较欠缺的开发人员,配置变化导致网站出现的问题可能会是怎么也解决不了的噩梦。

已有2位用户进行了打赏

问题内容的格式建议更新一下,现在这样读起来太费劲,很多人可能不会看完就关掉了,更别说解答了。

并不清楚具体要怎么操作来解决这个问题,以下是两点想法,仅供参考:

  1. 采集时URL的获取尽量采取相对路径转绝对路径的做法,而不是使用 concat() 进行拼接。例如 http://www.example.com/a/b/c?page=1 页面上的相对链接 ../b2/c2,应该通过 URL 和相对路径推导出绝对链接,而不是像文中固定写死。推导的办法可以适用于所有目标页面,而拼接需要基于不同的页面编写独立的规则,实用性和效率差得太多。
  2. 既然已经明确是采集链接中 / 被转换成了 %2F,那么正确处理好这个转换关系问题就能够得以解决。不论是保存入库前,将 %2F 转为 /,还是读取显示时将 %2F 转为 /,都可以实现URL的正确显示。至于是使用 Feed Temper 的替换功能,还是其它的方式,关键是找到对应的切入点。

如果没有时间研究或者不想研究URL中的替换,也可以适当考虑使用一些其它熟悉的办法来爬取URL,然后再将爬取的URL做为种子供Feed来进行采集也是可以的,毕竟办法总比问题多。

页面